用APXS编译Apache模块

来源:互联网 发布:高分遥感数据特点 编辑:程序博客网 时间:2024/05/17 06:06

apxs 是Apache的扩展工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用LoadModule指令在运行时加载到Apache 服务器中。

apache安装时—enable-so 参数必须添加上

./configure --prefix=/usr/local/apache2  --enable-so

make && make install

1.进入apache源代码的modules目录

cd /usr/local/src/httpd-2.2.17/modules/

2.运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_proxy模块

/usr/local/apache2/bin/apxs -c -i -a proxy/mod_proxy.c proxy/proxy_util.c

选项说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块

3.如果还需要其他proxy模块如mod_proxy_http、mod_proxy_ftp,则单独

/usr/local/apache2/bin/apxs -c -i proxy/proxy_http.c

/usr/local/apache2/bin/apxs -c -i  proxy/proxy_ftp.c

在/usr/local/apache2/conf/httpd.conf中会自动添加如下

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule proxy_module       modules/mod_proxy.so