linux Apache添加扩展模块
安装完Apache发现里面缺一些模块,这时候需要来向已经安装好的Apache中添加模块。接下来以添加代理模块为例。1,Apache2.2.3目录
Apache2.2.3安装在这里就不详细介绍了。安装详情:Apache安装详情
本人Apache2.2.3安装在/usr/local/apache。
Apache源码目录/usr/local/httpd-2.2.3。
2,添加代理模块
要为已运行的apache添加mod_proxy模块,先定位到apache源码中modules/proxy目录。然 后使用apxs进行编译安装:
A),添加mod_proxy.so
/usr/local/apache/bin/apxs -i -c -a mod_proxy.c proxy_util.c
安装成功以后将在apache的modules目录下生成mod_proxy.so文件,并且在httpd.conf中加入 了一行:LoadModule proxy_module modules/mod_proxy.so
如mod_proxy.c错误信息: httpd: Syntax error on line19of/usr/local/apache/conf/httpd.conf: Cannot not load/usr/local/apache/modules/mod_proxy.so into server: /usr/local/apache/ apxs -i -a -c mod_proxy.c proxy_util.c问题解决。因为proxy_util.c是基础模块,所以 必 须先安装。上面命令中农已经加了,不会出现这个问题。B),添加mod_proxy_http.so
/usr/local/apache/bin/apxs -i -c -a mod_proxy_http.c proxy_util.c
安装成功以后将在apache的modules目录下生成mod_proxy.so文件,并且在httpd.conf中加入 了一行:LoadModule proxy_http_module modules/mod_proxy_http.so
C),添加mod_proxy_ajp.so
/usr/local/apache/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c
注意一定要加ajp*c,这些事和mod_proxy_ajp.c相关的,否则会报错:
httpd: Syntax error on line 60 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/mod_proxy.so into server: /usr/local/apache/modules/mod_proxy.so: undefined symbol: ajp_send_header
3,重新启动Apache.
/usr/local/apache/bin/apachectl start
apxs选项说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块