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> |