【问题标题】:Why is error_reporting being ignored in php.ini?为什么在 php.ini 中忽略 error_reporting?
【发布时间】:2014-12-02 09:35:05
【问题描述】:

我已经在/etc/php5/apache2/php.ini 中设置了error_reporting = none 并运行了sudo service apache2 restart,但是当我尾随/var/log/apache2/error.log 时,我仍然会看到PHP Notice:xxxxxxxxxxxxx 之类的东西。

这是为什么?

【问题讨论】:

  • var_dump(error_reporting()); 显示什么?
  • 是否应该关闭错误报告而不是没有?你也检查过这三个:error_reporting = E_ALL,display_errors = off,log_errors = off
  • 我的 phpinfo 中 error_reporting 的值是 22527 - 如果这就是你的意思吗?
  • @TheHumbleRat 抱歉,它是 = 关闭。 display_errors 也是如此。 log_errors 是 On 但我已将其更改为 Off,重新加载 apache 并且它仍在记录......
  • @James 多么奇怪,也许也删除此行 error_log = /var/log/php-scripts.log 或文件中的等效项。

标签: php apache2 ubuntu-14.04 error-logging


【解决方案1】:

您应该将0 而不是none 分配给您的php.ini 中的error_reporting 参数:

error_reporting=0

error_reporting 参数值是一个整数位掩码,其中每个位代表不同的错误级别。 0 表示所有错误级别均已关闭,包括通知。

您还可以使用以下语句覆盖单个 PHP 脚本中的默认 error_reporting 值:

ini_set('error_reporting', 0);

这将关闭当前脚本执行的所有错误报告。

【讨论】:

  • 它不工作。我已将 error_reporting 更改为 0,但 phpinfo 仍然为“本地值”显示 22527(主值为 0)
  • 主值是由 php.ini 指令设置的值。在您的情况下,此值为 0,这是正确的,因为您在 php.ini 中设置了 error_reporting=0。本地值是当前脚本中的覆盖值。 phpinfo 很可能会覆盖 error_reporting 本身。
  • 无论如何,我认为您的代码应该可以正常工作,因为除非您覆盖error_reporting参数,否则它将使用主值。
猜你喜欢
  • 2012-09-06
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
相关资源
最近更新 更多