第七十一章 Apache (UNIX® Linux macOS) 的替代选项 - 替代选项 1:带有 NSD 的 Apache API 模块 (mod_csp24.so)
替代选项 1:带有 NSD 的 Apache API 模块 (mod_csp24.so)
如果 CSP 模块作为预构建共享对象 (mod_csp24.so) 随发行版一起提供,则从运行时配置开始。要从提供的源文件 mod_csp.c 构建共享对象,请选择下面的方法 1 或方法 2。优选方法 1。
请务必结合 Apache 发行版中包含的特定文档阅读以下有关创建共享对象的说明。请注意,此处给出的说明假定 Apache 安装的根目录是 /usr/apache。实际上,此目录名称通常会附加 Apache 版本号。
方法 1:使用 apxs (APache eXtenSion) 工具将 CSP 模块构建为共享对象
以下命令使用 Apache 扩展工具 apxs 在 Apache /modules 目录中构建并安装共享库 mod_csp24.so。它还添加了一个指令来将模块加载到 Apache 配置文件 /conf/httpd.conf 中。
apxs –c –o mod_csp24.so mod_csp.c
将生成的共享对象 (mod_csp24.so) 复制到以下目录:/opt/webgateway/bin。
方法 2:手动将 CSP 模块构建为共享对象
执行以下步骤将 CSP 模块手动构建为共享对象:
- 将模块源文件
mod_csp.c安装在以下目录中:/usr/apache/src/modules/extra - 返回
/usr/apache/src目录并编辑配置文件。在此文件末尾附近,找到以下行:
# AddModule modules/example/mod_example.o
在此行之后,添加以下行:
ShareModule modules/extra/mod_csp24.so
- 使用以下命令配置构建过程:
./Configure
- 使用以下命令构建共享对象:
make
在 /usr/apache/src/modules/extra 中生成共享对象 mod_csp24.so
注意:有关 apxs 工具的更多信息,请参阅 Apache 文档:https://httpd.apache.org/docs/2.4/programs/apxs.html。
运行时配置
编辑 Apache 配置文件 httpd.conf。对于标准 Apache 发行版,该文件位于:
/usr/apache/conf
对于 Red Hat Linux,httpd.conf 的运行时版本位于:
/etc/httpd/conf
假设希望为包含 .csp、.cls 或 .zen 扩展名的请求文件调用 CSP 引擎,请将以下部分添加到 httpd.conf 的末尾。
LoadModule csp_module /opt/webgateway/bin/mod_csp24.so
CSPFileTypes csp cls zen cxw
Alias /csp/ /opt/webgateway/csp/
<Directory "/opt/webgateway/csp">
AllowOverride None
Options MultiViews FollowSymLinks ExecCGI
Require all granted
<FilesMatch "\.(log|ini|pid|exe)$">
Require all denied
</FilesMatch>
<Files CSPnsd>
Require all denied
</Files>
</Directory>
ScriptAlias /csp-bin/ "/opt/webgateway/bin/"
ScriptAliasMatch /csp/bin/Systems/Module.cxw "/opt/webgateway/bin/nph-CSPcgiSys"
ScriptAliasMatch /csp/bin/RunTime/Module.cxw "/opt/webgateway/bin/nph-CSPcgi"
<Directory "/opt/webgateway/bin/">
AllowOverride None
Options None
Require all granted
</Directory>
更改 httpd.conf 后重新启动 Apache。