由于种种原因,我们经常会遇到apache缺少某个模块。但是我们的项目必须使用某个模块,重新安装固然是一个方法。但是,如果能添加新模块会更好。下面,以我对apache的了解及实施经验,介绍如何添加新模块。
测试环境apache安装路径/usr/local/apache2/,版本2.2
以添加vhost_alias为例:
1,寻找编译该模块的c文件
#find / -name mod_vhost_alias.c
系统会给出c文件的路径如:/usr/local/httpd-2.2.3/module/mappers/mod_vhost_alias.c
2,用apxs编译该模块
#cd /usr/local/httpd-2.2.3/modules/mappers/ 进入c文件所在文件夹
#/usr/local/apache2/bin/apxs -i -a -c mod_vhost_alias.c
选项说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#),即不激活此模块
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块
执行以上命令后,apache会自动编译、安装和修改httpd.conf文件,并自动激活该模块。
3,测试apache是否成功加载该模块
#cd /usr/local/apache2/bin
#./apachectl –t -D DUMP_MODULES
执行上述命令后,apahce会给出已经加载的模块,我们可以观察下是否加载了我们编译的模块。
4,测试加载新模块后apache是否正常