我在运行 Apache 的 VPS(CentOs)上,我想安装 Mod_Evasive。问题是我按照安装步骤操作没有错误,但 Apache 没有加载模块。以下是我已完成的步骤。
1)wgethttp://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
2)tar xzf mod_evasive_1.10.1.tar.gz
3)cd mod_evasive
4)apxs -cia mod_evasive20.c
5)纳米/etc/httpd/conf/mod_evasive.conf
6)将其粘贴到.conf中:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir /var/log/mod_evasive
DOSEmailNotify [email protected]
DOSWhitelist 127.0.0.1
</IfModule>
7)nano /etc/httpd/conf/httpd.conf 添加:
LoadModule evasive20_module modules/mod_evasive20.so
Include "/etc/httpd/conf/mod_evasive.conf"
8)创建 /var/log/mod_evasive
9)/etc/init.d/httpd 重启
10) php -r'phpinfo();'|grep -i evasive
最后一个命令没有显示任何有关 mod_evasive 的信息。我做错了什么?
答案1
10) php -r'phpinfo();'|grep -i evasive
此命令仅显示有关您的 PHP 堆栈的信息,它不会与 Apache 或 mod_evasive() 对话。
要在 phpinfo() 上获取服务器信息,您必须从服务器运行它,因此请从浏览器查看输出。
或者使用
apachectl -M
(根据您的安装情况,您可能需要输入 apache2 或 apache2ctl,而不是 apachectl)
答案2
您将 mod_evasive 添加到 Apache,然后在命令行上检查它是否存在于 PHP 中。 在浏览器中与在命令行上phpinfo()
不同。phpinfo()
尝试apachectl -M