共计 823 个字符,预计需要花费 3 分钟才能阅读完成。
有些时候因为特殊需求,需要在已安装的 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 对应的模块。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-02/150766.htm
正文完
星哥玩云-微信公众号