Apache 2.2.22的安装

apache2.x
增加如下特性:a.
预派生(Profork) b.
工作者(Worker) c.
独立子进程(Perchild).
 
1.下载地址
 
2.       安装前准备

#> rpm -qa | grep httpd    //
检查系统是否安装过httpd
服务
 
httpd-2.0.40-21
#> rpm -e httpd-2.0.40-21 //
删除系统rpm
包安装的apache
 
3.安装:

 
./configure  \
--prefix=/usr/local/apache \
--enable-cgi  \
--enable-so  \
--enable-proxy \
--enable-rewrite \
--enable-speling \
--enable-suexec \
--with-suexec-caller=daemon \
--with-suexec-docroot=/data
 
#> make
#> make install
Speling
是忽略大小写,如果使用要在httpd.conf
文件最后加入
CheckSpelling on
 
设置httpd.conf

<Directory /> #
此处要根据实际目录
    Options -Indexes
FollowSymLinks
    AllowOverride All
</Directory>
Options   -Indexes
是禁止目录浏览
4.改apache最大连接数
httpd.conf
中找到,把前面的#去掉
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-vhost.conf
 
修改
extra/httpd-mpm.conf

<IfModule mpm_prefork_module>
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>
 
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
(
压力测试时查看有多少个连接)
最高设置到20000,
如果想要20000
以上的并发数,那就只有从新编译了。
 
5.安装Cronolog,日志分割
 
 如果是centos可直接 yum install cronolog
 
5.1. 
下载:
5.2. 
安装
# ./configure
# make
# make install
 
5.3. 
查看
# which cronolog
 
5.4. 
配置httpd.conf
CustomLog "|/usr/local/sbin/cronolog /data/logs/access_log.%Y%m%d" combined
ErrorLog "|/usr/local/sbin/cronolog /data/logs/error_log.%Y%m%d"
 
5.5. 
建虚机用户
useradd -g users -s /sbin/nologin -M web001
6.配置httpd.conf文件
去掉下行的#
,根据实际情况命名
ServerName
 
虚拟主机站点根目录,可更改
<Directory "/usr/local/www">
 
7.虚拟主机的配置
以共享ip
为例,
httpd.conf
最后添加

#VIRTUAL_CONFIG
 
NameVirtualHost 192.168.1.100
 
<VirtualHost 192.168.1.100>
DocumentRoot /usr/local/apache/htdocs
ServerName test.com
ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
</VirtualHost>
 
<VirtualHost 192.168.1.101>
SuexecUserGroup web001 users
ServerAdmin webmaster@aaa.com
DocumentRoot /data/aaa/htdocs
ServerName aaa.com
ServerAlias aaaa.com
ServerAlias www.aaa.com
ScriptAlias /cgi-bin/ /home/aaa/cgi-bin/
DirectoryIndex index.php index.htm
</VirtualHost>
 
<VirtualHost 192.168.1.102>
SuexecUserGroup web002 users
ServerAdmin webmaster@bbb.com
DocumentRoot /data/bbb/htdocs            
ServerName bbb.com
ServerAlias bbbb.com       
ServerAlias www.bbb.com       
php_admin_value open_basedir "/tmp:/usr/local/www/web002"    //php
权限 
php_admin_value safe_mode On  
ScriptAlias /cgi-bin/ /data/bbb/cgi-bin/
DirectoryIndex index.php index.htm
</VirtualHost>