CRM系统|加入收藏|小博客
18560384436
>> 返回 您当前所在位置:首页 >> 支持中心 >> 详细内容

WordPress 和 APC 的小问题

更新时间:2014-08-09 12:38:37点击次数:2911次字号:T|T
昨天晚上给一位付费客户安装 APC PHP 加速器 的时候发现一个小问题,访问 WordPress 页面没问题也可以看到 WordPress 管理后台页面,但是无法登录,报错如下: Fatal error: Call to undefined function wp_dashboard_setup() in /home/vpsee/wordpress/wp-admin/index.php on line 15 关闭 APC 后这个问题就消失了,只要一打开 APC 就报错,进一步调查把问题缩小到一个 APC

昨天晚上给一位付费客户安装 APC PHP 加速器 的时候发现一个小问题,访问 WordPress 页面没问题也可以看到 WordPress 管理后台页面,但是无法登录,报错如下:

Fatal error: Call to undefined function wp_dashboard_setup() in /home/vpsee/wordpress/wp-admin/index.php on line 15

关闭 APC 后这个问题就消失了,只要一打开 APC 就报错,进一步调查把问题缩小到一个 APC 配置参数上 apc.include_once_override=1,如果设置成 apc.include_once_override=0 就没有问题。根据 APC 参考手册的说明,apc.include_once_override 参数是用来 Optimize include_once() and require_once() calls and avoid the expensive system calls used. 一般的建议是设置成0(关闭这个选项)。现在解决办法有两个,一个是设置 apc.include_once_override 为 0(这样会影响到所有网站,所有 PHP 站都不能用到 apc.include_once_override 这个优化了):

# vi /etc/php.d/apc.ini

...
apc.include_once_override = 0
...

另一个办法是修改 WordPress 文件(这样只会影响到一个 WordPress 网站),打开 wp-admin/index.php 文件找到 require_once(ABSPATH . ‘wp-admin/includes/dashboard.php’); 这行注释掉后修改成如下:

# vi /home/vpsee/wordpress/wp-admin/index.php

...
/* require_once(ABSPATH . 'wp-admin/includes/dashboard.php'); */
require_once('./includes/dashboard.php');
...