【问题标题】:I can't disable PHP errors我无法禁用 PHP 错误
【发布时间】:2014-09-21 13:15:41
【问题描述】:

所以我试过了是怎么回事

ini_set('display_errors', 'Off');
error_reporting(0);

就在<?php 的下方,但这似乎并没有停止显示它们。所以我去了php.ini,又去了display_errors,看到它被设置为Off。但它仍然显示。

所以我去了phpinfo()display_errors 以及display_startup_errors 都关闭了。 html_errors 也已关闭。我不确定这是否有帮助,但它说error_reporting 设置为-10241。有任何想法吗?

【问题讨论】:

  • 您是在运行自己的代码,还是一些框架代码? phpinfo() 中列出的 php.ini 是否与您检查过的相同?
  • 修改Php.ini后是否重启了apache?
  • 首先,是什么代码导致了这些所说的错误?
  • 这些可以通过 isset 条件轻松解决。不要隐藏你的错误。解决它们。
  • 我个人会选择一个包来处理错误而不是关闭报告。恕我直言,它非常懒惰并且不是修复程序,因为关闭错误会阻止人们看到更重要的错误。或者即使一个没有显示的记录错误,错误日志会被未处理的通知淹没,并且会很快使所述错误日志成为一个大文件(因为每次刷新都会输入具有不同时间戳的重复错误消息)

标签: php ubuntu error-reporting


【解决方案1】:

不要更改错误报告的值来解决问题。如果 display_errors 关闭,则不会独立于 error_reporting 设置显示错误。这样您就不会显示错误,但您仍然可以记录它们。

以下应该有效:

ini_set('display_errors', 'Off');

如果它不起作用,可能是您的服务器配置不允许您从 PHP 脚本更改设置。 ini_set() 失败时返回 FALSE。因此,首先您应该检查该调用返回的值。确保 ini_set 未列在禁用的 PHP 函数中(php.ini 中的 disable_functions)。

如果您问自己为什么即使在 php.ini 中 display_errors 为 Off 时仍然显示错误,您可以在脚本执行期间检查 display_errors 的实际值:

ini_get('display_errors')

请记住,PHP 设置也可以在 Apache 主机配置和 .htaccess 文件中进行更改。因此,请检查您是否有启用 display_errors 的 htacces。像这样的:

php_flag display_errors on

【讨论】:

    【解决方案2】:

    尝试使用:

    ini_set('display_errors', 0);
    ini_set('display_errors', false);
    

    【讨论】:

      【解决方案3】:

      您没有描述错误是什么,因此可能是您的 Web 服务器(Apache、nginx 等)引发了错误,而不是 PHP。

      如果是 PHP,请确保您正在编辑 phpinfo.php 中标识的正确 php.ini。请记住,如果您编辑 php.ini,您将需要重新启动 PHP 进程(例如,在某些 *nix 系统上:service php-fpm restart。您的确切命令可能会有所不同。)

      如果它在您的 php.ini 中关闭,我的猜测是它在其他地方被覆盖 - 或者稍后在脚本中('grep "ini_set" /path/to/project/*.php' 会找到它)。此外,PHP Manual 指出,如果脚本有致命错误,则如果有致命错误,则不适用:

      虽然 display_errors 可以在运行时设置(使用 ini_set()),但它 如果脚本有致命错误,则不会产生任何影响。这是因为 未执行所需的运行时操作。

      【讨论】:

        猜你喜欢
        • 2013-05-31
        • 2017-03-28
        • 2015-03-10
        • 2017-06-04
        • 1970-01-01
        • 2015-11-16
        • 2016-05-07
        • 2015-11-08
        • 1970-01-01
        相关资源
        最近更新 更多