杯了个具(2)- Akismet 失效

在网站恢复之后,突然发现右边栏的评论,都是英文,再看看第一篇文章的评论数,800多条!

这...

不是有Akismet垃圾评论拦截插件吗?进入后台一看,显示如下信息

服务器连通性

网络功能被禁止。

您的主机似乎禁用了 PHP 的 fsockopen 或 gethostbynamel 函数。在此问题修复之前,Akismet 无法工作。请联系您的主机服务管理员或防火墙管理员,并向他们提供 Akismet 的运行环境要求。

原来是因为服务器有人,利用dedecms的一个漏洞,用 fsockopen发起50M/s 的DoS攻击,结果fsockopen被封了。

解决方法,第一,在public_html目录下新建一个php.ini,并在其中写上如下代码:

allow_url_fopen = On

第二,直接将Akismet中admin.php和akismet.php源码中的fsockopen换成pfsockopen

第三,直接修改admin.php中的源码,我的版本是2.5.5

//180行
if ( !function_exists('fsockopen') || !function_exists('gethostbynamel') ) {
//换成
if ( (!function_exists('fsockopen') || !function_exists('gethostbynamel')) && !function_exists('wp_remote_post') ) {

//751行
if ( !function_exists('fsockopen') || !function_exists('gethostbynamel') )
//换成
if ( (!function_exists('fsockopen') || !function_exists('gethostbynamel')) && !function_exists('wp_remote_post') )

第一种 第三种 我都测试过,为了插件升级方便和其他程序可能也用到fsockopen,推荐第一种,要是不经常升级,第三种操作起来比较简单。


6 comments Leave a Comment
  1. 独自流浪 | 1#
    02-21st-2012 at 下午 7:00

    封fsockopen不是长久之策,很多软件默认都有用到这个函数~
    还好我跑在自己的VPS上面~
    怎么RSS订阅失效了?

    回复回复
  2. funnyhao | 2#
    02-22nd-2012 at 下午 7:24

    @独自流浪: RSS失效?你用什么订阅的 我的google reader可以。

    回复回复
  3. 独自流浪 | 3#
    02-23rd-2012 at 下午 8:58

    @funnyhao: QQ邮箱的订阅,长期没有你空间的更新

    回复回复
  4. funnyhao | 4#
    02-24th-2012 at 下午 3:09

    @独自流浪: QQ邮箱的订阅....

    回复回复
  5. funnyhao | 5#
    02-24th-2012 at 下午 3:15

    @funnyhao: 测试~

    回复回复
  6. 独自流浪 | 6#
    02-27th-2012 at 下午 11:31

    @funnyhao: 还是没邮件提示,你平时有收到吗?

    回复回复

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

(*)

评论: