精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
动态共享对象引导。此模块属于apache的核心模块。
该模块(指Mod_so)主要用来在运行的时候动态装入Apache模块,这意味着对服务器可以进行功能扩展而不需要重新对源代码进行编译,甚至根本不需要停止服务器。我们所需要做的仅仅是给服务器发送信号HUP或者AP_SIG_GRACEFUL通知服务器重新载入模块。
当然,在动态加载之前,你首先必须将你的模块编译成为动态链接库,然后更新你所指定的配置文件,通常情况下是httpd.conf。这样Apache核心就可以在启动的时候调用你的模块了。
将模块编译成为共享受库的最简单的方法就是在配置中使用ShareModule命令,而不是使用AddModule命令,而且你必须将文件的扩展名称从‘.o’改变为‘.so’。比如如果我们想将status模块变为共享库,在配置文件中我们只需要将AddModule modules/standard/mod_status.o 更改为 SharedModule modules/standard/mod_status.so 一旦更改完毕,运行配置文件同时进行编译。
现在Apache的httpd的二进制文件中并没有包含mod_status模块,为了使用共享模块,将.so文件拷贝到适当的目录中。你可能需要在服务器根目录下创建一个名称为“modules”的目录,比如“/usr/local/httpd/modules”。
下面的事情就是编辑你的conf/httpd.conf文件,同时增加一行“LoadModule”命令。比如: LoadModule status_module modules/mod_status.so 该命令的第一个参数是模块的名称,名称可以在module_source的最后找到。第二个选项是模块所处的路径,这个路径是相对于服务器路径而言。
如果服务器还在运行的时候,你就编辑LoadModule命令,那么你可以通过发送信号HUP或者AP_SIG_GRACEFUL给服务器,一旦接受到该信号,Apache将重新装载模块,而不需要重新启动服务器。
这样,尽管mod_so被实现为一个模块,它提供了一些引导功能为其它模块来服务,而这项功能通常被误以为应该是在http_core里面实现。
LoadFile
LoadModule