1.10. 使用 Apache 模块
httpd
服务是一个模块化应用程序,您可以使用多个 Dynamic Shared Objects (DSO) 进行扩展。Dynamic Shared Objects 是您可以可以根据需要在运行时动态加载或卸载的模块。您可以在 /usr/lib64/httpd/modules/
目录中找到这些模块。
1.10.1. 载入 DSO 模块
作为管理员,您可以通过配置服务器应加载哪个模块来选择要包含在服务器中的功能。要加载特定的 DSO 模块,请使用 LoadModule
指令。请注意,由单独的软件包提供的模块通常在 /etc/httpd/conf.modules.d/
目录中拥有自己的配置文件。
先决条件
-
已安装
httpd
软件包。
流程
在
/etc/httpd/conf.modules.d/
目录中的配置文件中搜索模块名称:grep mod_ssl.so /etc/httpd/conf.modules.d/*
# grep mod_ssl.so /etc/httpd/conf.modules.d/*
Copy to Clipboard Copied! 编辑找到模块名称的配置文件,然后取消对模块的
LoadModule
指令的注释:LoadModule ssl_module modules/mod_ssl.so
LoadModule ssl_module modules/mod_ssl.so
Copy to Clipboard Copied! 如果没有找到该模块,例如,因为 RHEL 软件包没有提供该模块,请创建一个配置文件,如
/etc/httpd/conf.modules.d/30-example.conf
:LoadModule ssl_module modules/<custom_module>.so
LoadModule ssl_module modules/<custom_module>.so
Copy to Clipboard Copied! 重启
httpd
服务:systemctl restart httpd
# systemctl restart httpd
Copy to Clipboard Copied!
1.10.2. 编译自定义 Apache 模块
您可以创建自己的模块,并使用 httpd-devel
软件包的帮助构建,其中包含包括文件、标头文件以及编译模块所需的 APache eXtenSion
(pxs
) 实用程序。
先决条件
-
已安装
httpd-devel
软件包。
流程
使用以下命令构建自定义模块:
apxs -i -a -c module_name.c
# apxs -i -a -c module_name.c
Copy to Clipboard Copied!
验证
- 加载模块的方式与加载 DSO 模块中所述的方法相同。