在 CentOS 上自定义 Apache 模块需要以下几个步骤:
sudo yum install httpd-devel
使用文本编辑器创建一个新的 C 语言源代码文件,例如 my_module.c。在这个文件中,你需要编写模块的源代码。以下是一个简单的示例:
#include <httpd.h>
#include <http_config.h>
#include <http_protocol.h>
#include <ap_config.h>
static int my_module_handler(request_rec *r) {
ap_rputs("Hello from My Module!", r);
return DECLINED;
}
static void my_module_register_hooks(apr_pool_t *p) {
ap_hook_handler(my_module_handler, NULL, NULL, APR_HOOK_MIDDLE);
}
module AP_MODULE_DECLARE_DATA my_module = {
STANDARD20_MODULE_STUFF,
NULL,
NULL,
NULL,
NULL,
NULL,
my_module_register_hooks
};
创建一个 Makefile 文件来编译你的模块。以下是一个简单的示例:
include /usr/lib/httpd/modules/Makefile.apxs
使用 apxs 工具编译你的模块:
sudo apxs -c -i my_module.c
这将生成一个名为 mod_my_module.so 的共享库文件。
在 Apache 配置文件(例如 /etc/httpd/conf/httpd.conf)中添加以下行以启用你的模块:
LoadModule my_module_module modules/mod_my_module.so
sudo systemctl restart httpd
现在,你的自定义 Apache 模块已经启用并运行。当用户访问你的网站时,他们将看到 “Hello from My Module!” 的消息。