Apache 安装新模块

一 Apache安装新模块

1.从httpd的源码中或下载的模块包中编译生成.so文件。

2.修改httpd.conf,LoadModule  xxx_module modules/mod_xxx.so

3.把.so文件复制到Apache的libexec目录中。


.c文件源码安装(使用apxs工具)

apxs -i -c -a mod_xxx.c



二 apxs命令

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

要使用这个扩展机制,你的平台必须支持DSO特性,而且Apache httpd 必须内建了mod_so 模块。apxs 工具能自动探测是否具备这样的条件。


参数说明

-i  此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。

-a  此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。

-A  与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。

-c  此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so 。

-o dsofile
明确指定所建立的动态共享对象的文件名,它不能从 files 文件列表中推测得到。如果没有明确指定,则其文件名将为 mod_unknown.so 



三 静态模块与动态模块

在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个,那么所有的默认模块为静态。 

静态的模块通常是<ifmodule></ifmodule> 来配置, 动态使用loadmoule来加载,然后再配置。

动态加载的模块都会显示在modules目录下。


静态加载的模块不会显示在modules目录下,静态加载模块内嵌在系统里,如果想卸载该模块,Apache需要重新进行编译安装。 静态加载的方法是配置时指定启动哪些模块。

./configure  --enable-modulename


apachectl -l 会列出系统已经加载的模块,且为静态方式加载的模块。


安装Apache时 ./configure的配置选项

1.--enable-so 选项 或--enable-so=static:让 Apache 可以支持DSO模式(Apache2)。--enable-module=so(Apache1)。

2.--enable-mods-shared=all意思是动态加载所有模块,如果去掉-shared话,是静态加载所有模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值