最近一朋友安装的dedecms无法生成HTML,在生成的过程当中提示没有权限:具体提示内容如下:

  1. Forbidden
  2. You don't have permission to access /dede/makehtml_list_action.php/xxxxxxxxxx on this server

经过了无数次的处理,包含权限、selinux、Apache配置、PHP版本的更换、程序的重装,都没有解决问题。后经过朋友的随意一句话,找到了症结,公司的Apache安装了mod_evasive防CC攻击模块,而模块配置参数里面的“DOSPageCount 2(允许单IP的最大并发连接(瞬间值)”导致生成HTML过程当中出问题。将DOSPageCount 的值调大,即可以解决! 下在讲一下directadmin下如何安装mod_evasive防CC攻击模块: mod_evasive 是Apache服务器的防CC攻击的一个模块,它可以检测和限制同个IP的请求次数,达到一定条件时执行命令(如使用iptables封禁IP),虽然并不能完全防御CC攻击,但在一定条件下能起到缓解Apache服务器的压力。

1)预安装:

  1. yum install httpd-devel  

2)获得mod_evasive,解压,安装。

  1. cd /usr/src
  2. wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
  3. tar xzf mod_evasive_1.10.1.tar.gz
  4. cd mod_evasive
  5. /usr/sbin/apxs -cia mod_evasive20.c

3)添加配置文件 vi /etc/httpd/conf/httpd.conf,在LoadModule evasive20_module /usr/lib/apache/mod_evasive20.so下面添加引用httpd-evasive.conf文件。

  1. LoadModule evasive20_module /usr/lib/apache/mod_evasive20.so
  2. Include /etc/httpd/conf/extra/httpd-evasive.conf

httpd-evasive.conf文件的内容如下:

  1. DOSHashTableSize 3097(哈希表大小,无需修改)
  2. DOSPageCount 2(允许单IP的最大并发连接(瞬间值)
  3. DOSSiteCount 50(允许单台机在指定秒数内访问同一页的次数)
  4. DOSPageInterval 1 单页请求检测时间(默认1秒)
  5. DOSSiteInterval 1 全站请求检测时间(默认1秒)
  6. DOSBlockingPeriod 3600 黑名单封禁时间(默认3600秒)
  7. DOSEmailNotify someone@somewhere.com有新黑名单记录通知管理员
  8. DOSSystemCommand “iptables -A INPUT -s %s -j DROP” 进黑名单执行命令

4)重启apache

  1. /etc/init.d/httpd restart
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。