把bmclapi安顿到其他服务器上后,这台服务器终于有内存跑第二个fpm了,所以决定安装一下php7,让dz跑在5.5的fpm上,单独给wp上7
安装完成后发现首页白屏,但是error_log里没有输出,即使打开WP_DEBUG,也只有几个Notice和Deprecated,按理来说不应该会导致白屏。
直接输入url进入文章页面终于有报错了,报错信息是called undefined function eregi(),没有堆栈
查了一下这个函数的文档http://php.net/eregi
Warning This function was DEPRECATED in PHP 5.3.0, and REMOVED in PHP 7.0.0.
这是个从5.3开始被弃用,7里直接移除的函数,然而并没有堆栈,所以只好去目录下执行grep -R eregi *
跑完发现是statpresscn这个插件使用了这个函数六遍
于是编辑/wp-content/plugins/statpresscn/statpresscn.php文件
用preg_match函数替代掉eregi的功能
修改2570行
if($_POST['statpress_updatesets_banip']!='') { $results = 0; $lines = file(ABSPATH.'wp-content/plugins/'.dirname(plugin_basename(__FILE__)).'/def/banips.dat'); foreach($lines as $line_num => $banip) { if (preg_match("@^(\d{1,3}\.\d{1,3}\.\d{1,3}\.(?:\d{1,3})?)(\s+evil)?$@i",trim($banip),$matches)) { $iprule = $matches[1]; if(strlen(rtrim($iprule)) > 0) { $results += $wpdb->query( "DELETE FROM " . $table_name . " WHERE ip like '$iprule%'"); } } }
修改2488-2492行
// URL (requested) $urlRequested=iri_StatPress_URL(); if (preg_match("/ver=2.0/i", $urlRequested)) { return ''; } if (preg_match("/.ico$/i", $urlRequested)) { return ''; } if (preg_match("/favicon.ico/i", $urlRequested)) { return ''; } if (preg_match("/.css$/i", $urlRequested)) { return ''; } if (preg_match("/.js$/i", $urlRequested)) { return ''; } if (stristr($urlRequested,"/wp-admin") != FALSE) { return ''; } if (stristr($urlRequested,"/wp-includes") != FALSE) { return ''; } if (stristr($urlRequested,"/wp-content/plugins") != FALSE) { return ''; } if (stristr($urlRequested,"/wp-content/themes") != FALSE) { return ''; }