9

在将计算机更新到 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: "

并且这些变化是在错误中实现的。

任何关于如何调试它的想法将不胜感激。

4

3 回答 3

18

在 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);
}
于 2013-10-27T13:14:59.140 回答
0

我发现只有

error_reporting = off

工作,因为严格的错误已成为 PHP 5.4 的 ALL 的一部分,这很烦人。

于 2013-11-24T12:03:40.127 回答
0

如果您在 wp-config.php 文件中将 WP_DEBUG 设置为“false”。这些不会影响您的网站。

Bot问题是上面有时不起作用。这可能发生在强制显示 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);

在我的情况下它的工作。

于 2017-05-02T09:45:12.573 回答