Apache 安装新模块

谁践踏了优雅 2022-08-06 13:17 327阅读 0赞

一 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个中的一个,那么所有的默认模块为静态。

静态的模块通常是 来配置, 动态使用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 条评论,327人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Apache安装的模板

    安装Apache的时候,如果采用的默认安装,有一些需要的模块可能是没有安装到,如重写模块,这个模块是默认安装中没有包括的模块,这个时候可以通过Apache的bin目录下的apx