本文主要是介绍不重新编译apache安装mod_deflate模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
查看原文:http://www.sijitao.net/1726.html
如果需要对网页进行gzip压缩,首先需要打开httpd.conf文件中LoadModule deflate_module modules/mod_deflate.so类似的配置。但是如果编译时没有加--enable-deflate,这个配置是不存在的。那么接下来你可以选择重新编译,或者看下博主接下来的介绍。
apxs:apxs是一个为Apache超文本传输协议(HTTP)服务器编译安装扩展模块的工具, 用于编译一个或多个源程序或目标代码文件为动态共享对象, 使之可以用mod_so中的LoadModule指令 在运行时刻加载到Apache服务器中。
找到源码目录下的mod_deflate.c文件,一般是在这里“源码目录/modules/filters/mod_deflate.c”。进入这个目录“源码目录/modules/filters/”。运行下面类似的命令:
/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c
注:apxs目录请参照您自己的机器,通常在apache安装目录的bin目录下。
安装完成后会在apache安装目录中的modules下生成mod_deflates.so文件,httpd.conf中也会增加“LoadModule deflate_module modules/mod_deflate.so”一行配置。如果提示错误,一般时服务器没有安装zlib,ubuntu用户可以选择安装zlibc、zlib1g、zlib1g-dev。
接下来不要忙着重启,首先测试下是否正确。
/usr/local/apache2/bin/httpd -t
如果出现如下提示,那么恭喜你,模块安装成功。
root@ubuntu:~/httpd-2.2.26/modules/filters# /usr/local/apache2/bin/httpd -t
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Syntax OK
如果出现如下提示,那么在接着往下看。
httpd: Syntax error on line 107 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_deflate.so into server: /usr/local/apache2/modules/mod_deflate.so: undefined symbol: inflate
出现这个错误其实时因为mod_deflate模块没有找到zlib库。解决办法就是找到apr-config文件中的LDFLAGS="",把他改成LDFLAGS="-lz",然后在运行/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c一般就可以了。
运行完可以通过如下命令验证,正常时mod_deflate.so是会加载libz.so的。
这里博主(www.sijitao.net)建议一开始编译时还是加上-enable-deflate,免得以后麻烦。希望这篇文章你有帮助。
root@ubuntu:~/httpd-2.2.26/modules/filters# ldd /usr/local/apache2/modules/mod_deflate.so
linux-vdso.so.1 => (0x00007fffa13ff000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe40028e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe3ffece000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe4006b3000)
参考文章:http://grepanswers.blogspot.com/2008/11/how-to-add-moddeflate-to-apache-without.html
这篇关于不重新编译apache安装mod_deflate模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!