一、下载源码 Apache2.2.14
二、解压到software 目录下
tar -zxvf httpd-2.2.14.tar.gz –C ../software/
三、编译安装
// 编译安装 Apache
#cd /usr/local/src/software/httpd-2.2.14 // 切换到Apache 源码目录内
#./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-so --enable-rewrite --enable-headers --enable-expires
编译选项说明:
--prefix=/usr/local/apache2 /// 指定Apache 的安装目录
--with-mpm=worker /// 使用worker 多处理器模块加入核心
--enable-so /// 允许运行时加载DSO 模块
--enable-rewrite / // 一个基于一定规则的实时重写URL 请求的引擎
--enable-headers/ // 允许通过配置文件控制任意的HTTP 请求和应答头信息
--disable-status // 禁用服务器状态
--enable-expires / //这个参数可以设置过期时间(有用做CDN源服务器时必加这个参数)
#make
#make install
四、配置
注释 DocumentRoot 相关行
#DocumentRoot "/usr/local/apache2/htdocs"
#<Directory "/usr/local/apache2/htdocs ">
# Options Indexes FollowSymLinks
# AllowOverride None
# Order allow,deny
# Allow from all
#</Directory>
去掉一下相关注释
# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf// 多处理器(MPM )模块配置
# Virtual hosts
Include conf/extra/httpd-vhosts.conf// 虚拟主机配置
# Various default settings
Include conf/extra/httpd-default.conf//Apache 相关参数
五、httpd-mpm.conf 配置
<IfModule mpm_worker_module>
StartServers 40//Apache 启动立即产生40 个子进程
MaxClients 1600// 允许最大的客户数
ServerLimit 100// 最大允许100 子进程数
MinSpareThreads 200// 最少有200 个空线程
MaxSpareThreads 300// 最多有300 个空线程
ThreadLimit 500// 最多有500 个线程
ThreadsPerChild 40// 一个子进程有40 个常驻线程
MaxRequestsPerChild 2000// 当处理的线程数达到 2000
</IfModule>
六、httpd-vhosts.conf 配置
NameVirtualHost IP 地址 :80
<VirtualHost 220.162.238.132:80>
DocumentRoot "/www"// 网站根目录
ServerName static.766.com// 域名
Alias /navigate /www/alias/navigate// 目录别名
Alias /source /www/alias/source// 目录别名
<Directory "/www">// 目录权限设置
Options FollowSymLinks// 选项
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
七、httpd-default.conf 配置
默认
八、日志过滤 http.conf 配置
"CustomLog "|/usr/local/apache2/logs /var/log/web/sery.com-access%Y%m%d.log.%H 28800 480" combined env=!image-request
SetEnvIf Request_URI /.gif$ gif-image
SetEnvIf Request_URI /.GIF$ gif-image
SetEnvIf Request_URI /.jpg$ gif-image
SetEnvIf Request_URI /.JPG$ gif-image
SetEnvIf Request_URI /.png$ gif-image
SetEnvIf Request_URI /.js$ gif-image
SetEnvIf Request_URI /.bmp$ gif-image
SetEnvIf Request_URI /.css$ gif-image
SetEnvIf Request_URI /.mid$ gif-image
SetEnvIf Request_URI /.swf$ gif-image
SetEnvIf Request_URI /.mmf$ gif-image
SetEnvIf Request_URI /.wma$ gif-image
SetEnvIf Request_URI /.Wma$ gif-image
SetEnvIf Request_URI /.midi$ gif-image
SetEnvIf Request_URI /.ani$ gif-image
SetEnvIf Request_URI /.rar$ gif-image
SetEnvIf Request_URI /.rarZ$ gif-image
SetEnvIf Request_URI /.mp3$ gif-image
SetEnvIf Request_URI /.zip$ gif-image
SetEnvIf Request_URI /.rmvb$ gif-image
SetEnvIf Request_URI /.txt$ gif-image
SetEnvIf Request_URI /.exe$ gif-image
SetEnvIf Request_URI /.xml$ gif-image
SetEnvIf Request_URI /.ico$ gif-image
SetEnvIf Request_URI bd/.php$ gif-image
SetEnvIf Request_URI counter/.php$ gif-image
SetEnvIf Request_URI comment/.php$ gif-image
SetEnvIf Request_URI emotion/.php$ gif-image
SetEnvIf Request_URI pn/.php$ gif-image
SetEnvIf Request_URI getjs/.php$ gif-image
说明 :
SetEnv Request_URL 设置判断环境变量"image-request" ,"CustomLog "|/usr/local /apache2/logs /var/log/web/sery.com-access%Y%m%d.log.%H 28800 480" combined env=!image-request " 表示不记图片请求所产生的日志,并且使用Apache 的日志轮转工具rotatelogs 对日志进行分割,以 年月日及小时方式命名文件,这样用脚本处理日志时就非常方便了。这个CustomLog 有点特别,不要把命令前面的"|" 等符号写丢了。通过运行 Apache 服务,将在目录/var /log/web/ 生成日志文件sery.com-access20071120.log.00.