我正在尝试在运行 Apache 2.4 的服务器上安装 mod_security - 如果我尝试使用:
yum install mod_security
它告诉我 Apache 2.2.15 是一个依赖项,如果没有它就无法安装。
然后我尝试下载 mod_security 并编译它,它最终可以工作,但由于对 APXS 的依赖,需要 httpd-devel。
由于需要安装 httpd-devel,mod_security 会针对 2.2.15 进行安装,但模块似乎无法与 2.4 一起使用 - 当我尝试重新启动 httpd 时出现错误:
Starting httpd: httpd: Syntax error on line 57 of /opt/httpd/conf/httpd.conf: Cannot load modules/mod_security2.so into server: /opt/httpd/modules/mod_security2.so: undefined symbol: ap_log_error
modules/mod_security2.so 是从 /etc/httpd/modules(Apache 2.2.15 目录)手动复制的。
Apache 2.4 是否有一个特定的安装过程,不需要通过安装 2.2 的位来混淆?
答案1
您可能仍安装了 Apache 2.2,并且当您配置 ModSecurity 时,它会针对 2.2 进行构建。
下面是我基于安装在 /usr/local/apache2 中的 Apache 从源代码安装 ModSecurity 的步骤:
#Download ModSecurity
wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz
wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz.sha256
#Config checksum of download
sha256sum -c modsecurity-2.9.1.tar.gz.sha256
#Install ModSecurity:
tar -xvf modsecurity-2.9.1.tar.gz
cd modsecurity-2.9.1
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
sudo make install
cp /usr/local/modsecurity/lib/mod_security2.so /usr/local/apache2/modules
然后在 Apache 配置中进行配置。
希望有所帮助。