1. 查看apache的已经内置的模块
apachectl -l
发现 mod_so.c,ok可以动态加模块,不用重新编译。

2. 安装mod_deflate
找到原有的apache安装包安装mod_deflate
cd httpd-2.0.59/modules/filters
/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c

apxs命令参数说明:
-i 此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。
-a 此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
-A 与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。
-c 此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so 。

3. 编辑httpd.conf,配置mod_deflate
对下类型文件的开启mod_deflate
这里需要注意的是LoadModule deflate_module需要放在LoadModule php5_module之后

<ifmodule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilter DEFLATE css js txt php xml html htm
</ifmodule>

注:DeflateCompressionLevel 6 此行为压缩级别,1-9,9压缩率最高,占用资源最大。

4. 重启apache,让配置生效

 

5、使用以下站点测试apache是否成功添加压缩功能

http://tool.chinaz.com/Gzips/

输入完整网页文件路径,如:www.qq.com/test.js

==================================================================

有个奇怪的问题,在我添加这个模块之前:

使用192.168.2.100/phpinfo2.php使用站长之家的测试结果为 是,启动压缩;

如果把IP改为域名访问,测试结果:否,未启用压缩。