Apr
20
Environment
SUSE Linux Enterprise Desktop 11
SUSE Linux Enterprise Desktop 10
SUSE Linux Enterprise Server 11
SUSE Linux Enterprise Server 10
Situation
An NFS client is successfully mounting an NFS v4 file system. However, upon executing "ls -al," all the file user and group ownership is showing as "nobody" or as "4294967294", instead of the values that are shown when viewed directly on the remote NFS server.
Resolution
For user names to be displayed correctly, the NFS v4 server must have knowledge of the same user and group accounts as the NFS client. If users and groups are centrally managed, this works automatically. With previous NFS protocol versions, it was sufficient to create identical user accounts on all clients accessing an NFS server. These accounts didn't need to exist on the server itself because the files were only served by user ID. However, with NFSv4, identity tracking has been redesigned and now uses a identity mapping daemon (idmapd). It's crucial that server and client have access to identical account information, or idmapd cannot properly do it's job and may display ownership as "nobody" or equivalent high values.
Both the NFS server and the NFS client must run idmapd and have good idmapd.conf files. Even when the same accounts are known to both the servers and clients, idmapd configuration problems can prevent proper ownership from being displayed.
Check the /etc/idmapd.conf file. The [General] section should have a Domain setting. This typically matches the DNS domain name, but does not necessarily have to. NFS servers and NFS clients which interact with each other should have their idmap domains set identically. It can also be helpful for there to be a [Translation] section which specifies the method of translating between names and IDs. Typically, it is best to point to nsswitch methodology.
So, for example, a typical idmapd.conf file might look like the following:
[General]
Verbosity=7
Pipefs-Directory=/var/lib/nfs/rpc_pipefs
Domain=test.novell2.com
[Mapping]
Nobody-User=nobody
Nobody-Group=nobody
[Translation]
Method=nsswitch
If changes are made to this file on any system, or if a system is already configured this way and still does not function correctly, try restarting idmapd. On some versions of SLES (typically SLE 10) this can be done with:
rcidmapd restart
On other versions (typically SLE 11), idmapd isn't setup to stop and start independently of NFS services, so the necessary commands would be:
If the system is an nfs client:
rcnfs restart
If the system is an NFS server:
rcnfsserver restart
If the system is both an NFS server and an NFS client:
rcnfs stop
rcnfsserver stop
(repeat the above commands if messages indicate something could not be stopped or is busy)
rcnfsserver start
rcnfs start
Disclaimer
This Support Knowledgebase provides a valuable tool for NetIQ/Novell/SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
SUSE Linux Enterprise Desktop 11
SUSE Linux Enterprise Desktop 10
SUSE Linux Enterprise Server 11
SUSE Linux Enterprise Server 10
Situation
An NFS client is successfully mounting an NFS v4 file system. However, upon executing "ls -al," all the file user and group ownership is showing as "nobody" or as "4294967294", instead of the values that are shown when viewed directly on the remote NFS server.
Resolution
For user names to be displayed correctly, the NFS v4 server must have knowledge of the same user and group accounts as the NFS client. If users and groups are centrally managed, this works automatically. With previous NFS protocol versions, it was sufficient to create identical user accounts on all clients accessing an NFS server. These accounts didn't need to exist on the server itself because the files were only served by user ID. However, with NFSv4, identity tracking has been redesigned and now uses a identity mapping daemon (idmapd). It's crucial that server and client have access to identical account information, or idmapd cannot properly do it's job and may display ownership as "nobody" or equivalent high values.
Both the NFS server and the NFS client must run idmapd and have good idmapd.conf files. Even when the same accounts are known to both the servers and clients, idmapd configuration problems can prevent proper ownership from being displayed.
Check the /etc/idmapd.conf file. The [General] section should have a Domain setting. This typically matches the DNS domain name, but does not necessarily have to. NFS servers and NFS clients which interact with each other should have their idmap domains set identically. It can also be helpful for there to be a [Translation] section which specifies the method of translating between names and IDs. Typically, it is best to point to nsswitch methodology.
So, for example, a typical idmapd.conf file might look like the following:
[General]
Verbosity=7
Pipefs-Directory=/var/lib/nfs/rpc_pipefs
Domain=test.novell2.com
[Mapping]
Nobody-User=nobody
Nobody-Group=nobody
[Translation]
Method=nsswitch
If changes are made to this file on any system, or if a system is already configured this way and still does not function correctly, try restarting idmapd. On some versions of SLES (typically SLE 10) this can be done with:
rcidmapd restart
On other versions (typically SLE 11), idmapd isn't setup to stop and start independently of NFS services, so the necessary commands would be:
If the system is an nfs client:
rcnfs restart
If the system is an NFS server:
rcnfsserver restart
If the system is both an NFS server and an NFS client:
rcnfs stop
rcnfsserver stop
(repeat the above commands if messages indicate something could not be stopped or is busy)
rcnfsserver start
rcnfs start
Disclaimer
This Support Knowledgebase provides a valuable tool for NetIQ/Novell/SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
Mar
18
第一种安装方法:
# /usr/local/php/bin/pecl install apc
然后按提示进行直至安装完成,安装完成之后修改/etc/php.ini 文件加入:
extension=apc.so
第二种安装方法:
首先要下载安装文件,打开 http://pecl.php.net/package/APC 下载最新的软件包,当前最新版3.1.9。
wget http://pecl.php.net/get/APC-3.1.9.tgz
# tar -zxvf APC-3.1.9.tgz
# cd APC-3.1.9
# /usr/bin/phpize
# ./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/bin/php-config
# make
# make install
创建apc的配置文件
vi /etc/php.d/apc.ini
加入以下内容:
extension=apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 128
apc.ttl = 7200
apc.user_ttl = 7200
apc.num_files_hint = 1024
apc.write_lock = On
apc.gc_ttl=3600
apc.ttl=0
apc.mmap_file_mask=/tmp/apc.XXXXXX
WEB服务器是APACHE的话,重启apache生效,如果是NGINX 重启php-fpm生效,注意如果你已经安装了eAccelerator或其他的加速工具了,再安装APC有冲突,常用的有APC、eAccelerator、XCache这三款,选择安装一个就可以了。
# /usr/local/php/bin/pecl install apc
然后按提示进行直至安装完成,安装完成之后修改/etc/php.ini 文件加入:
extension=apc.so
第二种安装方法:
首先要下载安装文件,打开 http://pecl.php.net/package/APC 下载最新的软件包,当前最新版3.1.9。
wget http://pecl.php.net/get/APC-3.1.9.tgz
# tar -zxvf APC-3.1.9.tgz
# cd APC-3.1.9
# /usr/bin/phpize
# ./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/bin/php-config
# make
# make install
创建apc的配置文件
vi /etc/php.d/apc.ini
加入以下内容:
extension=apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 128
apc.ttl = 7200
apc.user_ttl = 7200
apc.num_files_hint = 1024
apc.write_lock = On
apc.gc_ttl=3600
apc.ttl=0
apc.mmap_file_mask=/tmp/apc.XXXXXX
WEB服务器是APACHE的话,重启apache生效,如果是NGINX 重启php-fpm生效,注意如果你已经安装了eAccelerator或其他的加速工具了,再安装APC有冲突,常用的有APC、eAccelerator、XCache这三款,选择安装一个就可以了。
Mar
13
具体配置文件参考:
fastcgi.conf
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param PATH_INFO $path_info;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param REDIRECT_STATUS 200;
nginx.conf
user nginx nginx;
worker_processes 16;
error_log logs/nginx_error.log crit;
pid logs/nginx.pid;
events {
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
log_format weblog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log weblog;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_proxied any;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
include /usr/local/nginx/conf/test.conf;
}
test.conf
server
{
listen 80;
server_name www.test.com;
access_log logs/test.log;
root /home/wwwroot/ci;
index index.php index.html index.htm;
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
location ~ \.php {
set $real_script_name $fastcgi_script_name;
set $path_info "";
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi.conf;
}
}
以上配置可以支持ThinkPHP,CI,ZF等等框架
下面是NGINX官方对于pathinfo提供的解决方法:
fastcgi_split_path_info
syntax: fastcgi_split_path_info regex
context: location
version: ≥ 0.7.31
This directive allows the setting of the SCRIPT_FILENAME (SCRIPT_NAME) and PATH_INFO variables of the CGI specification. The regex consists of two groups:
path to the script that will handle the request — corresponding to $fastcgi_script_name.
the value of the parameter to be given to the script — corresponding to the $fastcgi_path_info.
Here's an example. The script show.php receives as argument the string article/0001. The following configuration will handle path splitting properly:
location ~ ^.+\.php {
(...)
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
(...)
}
Requesting /show.php/article/0001 sets SCRIPT_FILENAME to /path/to/php/show.php and PATH_INFO to /article/0001.
fastcgi.conf
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param PATH_INFO $path_info;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param REDIRECT_STATUS 200;
nginx.conf
user nginx nginx;
worker_processes 16;
error_log logs/nginx_error.log crit;
pid logs/nginx.pid;
events {
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
log_format weblog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log weblog;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_proxied any;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
include /usr/local/nginx/conf/test.conf;
}
test.conf
server
{
listen 80;
server_name www.test.com;
access_log logs/test.log;
root /home/wwwroot/ci;
index index.php index.html index.htm;
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
location ~ \.php {
set $real_script_name $fastcgi_script_name;
set $path_info "";
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi.conf;
}
}
以上配置可以支持ThinkPHP,CI,ZF等等框架
下面是NGINX官方对于pathinfo提供的解决方法:
fastcgi_split_path_info
syntax: fastcgi_split_path_info regex
context: location
version: ≥ 0.7.31
This directive allows the setting of the SCRIPT_FILENAME (SCRIPT_NAME) and PATH_INFO variables of the CGI specification. The regex consists of two groups:
path to the script that will handle the request — corresponding to $fastcgi_script_name.
the value of the parameter to be given to the script — corresponding to the $fastcgi_path_info.
Here's an example. The script show.php receives as argument the string article/0001. The following configuration will handle path splitting properly:
location ~ ^.+\.php {
(...)
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
(...)
}
Requesting /show.php/article/0001 sets SCRIPT_FILENAME to /path/to/php/show.php and PATH_INFO to /article/0001.
Mar
8
OWS是免费开源的运维管理平台,今天拿一台机器安装测试了下,功能上做的不错,只是还不够成熟。感兴趣的可以安装体验下,安装OWS的前提是你已经安装编译好了PHP+MYSQL环境。
一、下载源码文件
wget http://damo.openwebsa.org/down/ows_damo_v1.0.2_3.tar.gz
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c10.tar.gz#md5=30f822f19b02c3082cb1ba1d69be35dd
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
二、编译安装
解压OWS文件并移到/usr/local/ows目录
# tar xvf ows_damo_v1.0.2_3.tar.gz
#mv ows /usr/local/ows
#chown -R nobody:nobody /usr/local/ows
#chmod 755 -R /usr/local/ows/unctrlsh/*
安装Python
#tar xvf Python-2.7.2.tgz
#cd Python-2.7.2
#./configure --prefix=/usr/local/ows/python
#make && make install
#/usr/local/ows/python/bin/python -V
Python 2.7.2
安装setuptools
#tar xzvf setuptools-0.6c10.tar.gz
#cd setuptools-0.6c10
#/usr/local/ows/python/bin/python setup.py build
#/usr/local/ows/python/bin/python setup.py install
安装MySQL-python
#which mysql_config
#tar xvf MySQL-python-1.2.3.tar.gz
#cd MySQL-python-1.2.3
#/usr/local/ows/python/bin/python setup.py build
#/usr/local/ows/python/bin/python setup.py install
三、创建数据库和导入数据库表
mysql>create database 数据库名 default charset utf8;
mysql>grant all privileges on 数据库名.* to 数据库用户名@127.0.0.1 identified by '数据库用户密码';
mysql>flush privileges;
数据库用户的权限可以只给:create,drop,delete,insert,update,select,lock tables。
然后导入数据库
#mysql -u数据库用户名 -p数据库用户密码 数据库名 < /usr/local/ows/openwebsa.sql
数据库导入之后需要修改ows数据库配置文件,一共需要修改两处
/usr/local/ows/ctrlphp/etc/ows_config.inc.php
/usr/local/ows/ctrlpy/etc/config.py
四、配置WEB页面
不管你用的是哪种支持PHP的WEB服务器软件,指定网站的目录为/usr/local/ows/ctrlphp就可以了,下面以APACHE别名的方式为例,打开apache的httpd.conf配置文件,添加如下内容:
Alias /ows /usr/local/ows/ctrlphp
<Directory "/usr/local/ows/ctrlphp">
Options +SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
保存之后,重新启动apache
五、启动相关服务
启动服务端
#cd /usr/local/ows/ctrlpy/
#chmod 755 ows_service.sh
#./ows_service.sh start
启动客户端
#cd /usr/local/ows/unctrlpy/
#chmod 755 ows_service.sh
#./ows_service.sh start
查看进程是否运行
# ps aux | grep py
查看监听端口
# netstat -tulnp | grep py
使用浏览器打开 http://ip/ows 登陆web管理平台
默认的账号:openwebsa 密码:openwebsa
进去之后别忘记修改密码,官方的演示地址是:http://damo.openwebsa.org 感兴趣的朋友可以进去看看,此管理平台目前来看还不是很完善,大家测出问题可以向官方反馈,以便程序尽快完善。
一、下载源码文件
wget http://damo.openwebsa.org/down/ows_damo_v1.0.2_3.tar.gz
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c10.tar.gz#md5=30f822f19b02c3082cb1ba1d69be35dd
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
二、编译安装
解压OWS文件并移到/usr/local/ows目录
# tar xvf ows_damo_v1.0.2_3.tar.gz
#mv ows /usr/local/ows
#chown -R nobody:nobody /usr/local/ows
#chmod 755 -R /usr/local/ows/unctrlsh/*
安装Python
#tar xvf Python-2.7.2.tgz
#cd Python-2.7.2
#./configure --prefix=/usr/local/ows/python
#make && make install
#/usr/local/ows/python/bin/python -V
Python 2.7.2
安装setuptools
#tar xzvf setuptools-0.6c10.tar.gz
#cd setuptools-0.6c10
#/usr/local/ows/python/bin/python setup.py build
#/usr/local/ows/python/bin/python setup.py install
安装MySQL-python
#which mysql_config
#tar xvf MySQL-python-1.2.3.tar.gz
#cd MySQL-python-1.2.3
#/usr/local/ows/python/bin/python setup.py build
#/usr/local/ows/python/bin/python setup.py install
三、创建数据库和导入数据库表
mysql>create database 数据库名 default charset utf8;
mysql>grant all privileges on 数据库名.* to 数据库用户名@127.0.0.1 identified by '数据库用户密码';
mysql>flush privileges;
数据库用户的权限可以只给:create,drop,delete,insert,update,select,lock tables。
然后导入数据库
#mysql -u数据库用户名 -p数据库用户密码 数据库名 < /usr/local/ows/openwebsa.sql
数据库导入之后需要修改ows数据库配置文件,一共需要修改两处
/usr/local/ows/ctrlphp/etc/ows_config.inc.php
/usr/local/ows/ctrlpy/etc/config.py
四、配置WEB页面
不管你用的是哪种支持PHP的WEB服务器软件,指定网站的目录为/usr/local/ows/ctrlphp就可以了,下面以APACHE别名的方式为例,打开apache的httpd.conf配置文件,添加如下内容:
Alias /ows /usr/local/ows/ctrlphp
<Directory "/usr/local/ows/ctrlphp">
Options +SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
保存之后,重新启动apache
五、启动相关服务
启动服务端
#cd /usr/local/ows/ctrlpy/
#chmod 755 ows_service.sh
#./ows_service.sh start
启动客户端
#cd /usr/local/ows/unctrlpy/
#chmod 755 ows_service.sh
#./ows_service.sh start
查看进程是否运行
# ps aux | grep py
查看监听端口
# netstat -tulnp | grep py
使用浏览器打开 http://ip/ows 登陆web管理平台
默认的账号:openwebsa 密码:openwebsa
进去之后别忘记修改密码,官方的演示地址是:http://damo.openwebsa.org 感兴趣的朋友可以进去看看,此管理平台目前来看还不是很完善,大家测出问题可以向官方反馈,以便程序尽快完善。
Mar
5
一、下载需要的文件
二、编译软件
Apache HTTP Server项目团队称,这是最新的、也是最好的一个版本,添加了许多新的模块,扩展了现有的功能,增强了灵活性。众多的性能及功能改进,使得该版本更适合日益流行的云环境。
该版本的主要改进包括:
改善了服务器性能(减少了资源利用,增强了并发能力)
支持异步I/O
动态反向代理配置
比纯事件驱动的Web服务器的性能更好
更精准的超时和资源利用限制能力
增强了微调缓存支持,专为高流量服务器和代理服务器打造
wget http://labs.renren.com/apache-mirror//httpd/httpd-2.4.1.tar.gz
wget http://apache.etoak.com//apr/apr-1.4.6.tar.gz
wget http://apache.etoak.com//apr/apr-util-1.4.1.tar.gz
wget http://apache.etoak.com//apr/apr-1.4.6.tar.gz
wget http://apache.etoak.com//apr/apr-util-1.4.1.tar.gz
二、编译软件
tar xzvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install
cd ..
tar xzvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
cd ..
tar xzvf httpd-2.4.1.tar.gz
cd httpd-2.4.1/
./configure --prefix=/usr/local/webserver/apache --enable-so --enable-modules=all --enable-mods-shared=all --enable-vhost-alias --enable-deflate --enable-expires --enable-rewrite --enable-authn-dbm=shared --enable-ssl --with-ssl --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
make && make install
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install
cd ..
tar xzvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
cd ..
tar xzvf httpd-2.4.1.tar.gz
cd httpd-2.4.1/
./configure --prefix=/usr/local/webserver/apache --enable-so --enable-modules=all --enable-mods-shared=all --enable-vhost-alias --enable-deflate --enable-expires --enable-rewrite --enable-authn-dbm=shared --enable-ssl --with-ssl --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
make && make install
Apache HTTP Server项目团队称,这是最新的、也是最好的一个版本,添加了许多新的模块,扩展了现有的功能,增强了灵活性。众多的性能及功能改进,使得该版本更适合日益流行的云环境。
该版本的主要改进包括:
改善了服务器性能(减少了资源利用,增强了并发能力)
支持异步I/O
动态反向代理配置
比纯事件驱动的Web服务器的性能更好
更精准的超时和资源利用限制能力
增强了微调缓存支持,专为高流量服务器和代理服务器打造