首页 文章

使用PHP 5.4禁用WordPress 3.7中的严格标准错误

提问于
浏览
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设置为Off:

display_errors = Off

每次更改文件后,我都会使用以下两个命令重新启动apache和httpd:

httpd -k restart
apachectl restart

我正在编辑的php.ini文件与phpinfo()中指向的文件相同,只是为了确保更改正在进行,我一直在编辑error_prepend_string值:

error_prepend_string = "<span style='color: #ff0000'>ERROR: "

这些变化是在错误中发生的 .

任何关于如何调试这个的想法将非常感激 .

3 回答

  • 0

    在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 更改此设置(或者更确切地说,您可以,但它将被覆盖) .

    解决方案是创建一个"Must Use plugin",即位于 /wp-content/mu-plugins/ 文件夹中的.php文件,其中包含:

    <?php
    if (WP_DEBUG && WP_DEBUG_DISPLAY) 
    {
       ini_set('error_reporting', E_ALL & ~E_STRICT & ~E_DEPRECATED);
    }
    
  • 0

    我发现只有

    error_reporting = off
    

    因为STRICT错误已经成为PHP 5.4的一部分,这很烦人 .

  • 18

    如果在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);
    

    在我的情况下它的工作 .

相关问题