将计算机更新到OS X 10.9后,我正在尝试通过我的php.ini文件在WordPress 3.7中禁用STRICT错误报告。我正在运行PHP版本5.4.17,这是Mavericks附带的版本。
在我的 wp-config.php 文件中,我已经启用了define('WP_DEBUG', true);
在升级我的操作系统之前工作正常,因此,PHP 也是如此。
在 php.ini 文件中,我尝试将error_reporting设置为:
error_reporting = E_ALL
或
error_reporting = E_ALL & ~E_STRICT
或
error_reporting = E_ALL & ~E_DEPRECATED
甚至
error_reporting = 0
但是错误仍然出现。
display_errors设置为"关":
display_errors = Off
每次更改文件后,我都会使用这两个命令重新启动 apache 和 httpd:
httpd -k restart
apachectl restart
我正在编辑的 php.ini 文件与 phpinfo() 中指向的文件相同,为了确保更改正在进行,我一直在编辑error_prepend_string值:
error_prepend_string = "<span style='color: #ff0000'>ERROR: "
这些变化正在错误中发生。
关于如何调试的任何想法将不胜感激。
在 Wordpress 3.7 中,函数 wp_debug_mode
(在 wp-includes/load.php
中定义,并从 wp-setings.php
调用)设置error_reporting( E_ALL )
。
由于wp-settings.php
本身是在wp-config.php
末尾加载的,因此您无法从wp-config.php
更改此设置(或者更确切地说,您可以,但它将被覆盖)。
一种解决方案是创建一个"必须使用插件",即位于/wp-content/mu-plugins/
文件夹中的.php文件,其中包含:
<?php
if (WP_DEBUG && WP_DEBUG_DISPLAY)
{
ini_set('error_reporting', E_ALL & ~E_STRICT & ~E_DEPRECATED);
}
我发现只有
error_reporting = off
有效,因为从 PHP 5.4 开始,STRICT 错误已成为 ALL 的一部分,这很烦人。
如果在wp-config.php文件中将WP_DEBUG设置为"false"。这些不会影响您的网站。
机器人 问题是上述有时不起作用。这可能发生在强制显示PHP错误,警告和通知的廉价/共享主机上。在这种情况下,您可以从 wp-config.php 文件中删除此行:
define('WP_DEBUG', false);
并放置这个:
ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
就我而言,它可以工作。