httpd添加新模块
Posted 骏马金龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httpd添加新模块相关的知识,希望对你有一定的参考价值。
apache httpd系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html
有些时候因为特殊需求,需要在已安装的httpd上添加一些额外的模块,这时候要使用httpd-devel中的apxs工具。要使用这个扩展机制,你的平台必须支持DSO特性,即要求Apache httpd必须内建了mod_so模块。
apxs添加模块的方法很简单,以下是几个可能用上的选项。
-c mod_foo.c
:将c文件编译为.so文件。-i
:表示安装一个或多个模块到apache服务所在目录的modules目录中。-a
:表示自动在httpd.conf中加入LoadModule行。-A
:表示自动在httpd.conf中加入#LoadModule行,也就是说安装了模块但是不启用。-n
:显式指定-i需要安装的模块名。
例如:添加mod_proxy.so模块。
cd httpd-2.4.23/modules # 进入到httpd源码的解压目录
apxs -c -i -A proxy/mod_proxy.c proxy/proxy_util.c
安装成功后的最后几行会告诉你要去修改配置文件,看情况是否要修改LoadModule指令来加载模块。
有时候添加一个模块后重启失败了并提示undefined Symbol,说明还需添加另外相关的所需模块。
例如,上面如果只安装apxs -c -i -a proxy/mod_proxy.c
时重启httpd。
Starting httpd: httpd: Syntax error on line 117 of /etc/apache/httpd.conf: Cannot load modules/mod_proxy.so into server: /usr/local/apache/modules/mod_proxy.so: undefined symbol: ap_proxy_strmatch_domain
这说明还需要装相关的devel或者util对应的模块。
以上是关于httpd添加新模块的主要内容,如果未能解决你的问题,请参考以下文章