【问题标题】:What could cause php.ini to ignore error_reporting directive?什么可能导致 php.ini 忽略 error_reporting 指令?
【发布时间】:2012-09-06 11:03:08
【问题描述】:

所以当我在 php.ini 中设置这个指令时

error_reporting = E_ALL & ~E_DEPRECATED

即使在 apache 重新加载或重新启动后,我仍然会收到这些错误。

Thu Sep 13 10:51:10 2012] [error] [client 173.59.22.4] PHP Deprecated: Assigning the return value of new by reference is deprecated in

等等等等等等

有什么想法吗?我不知道为什么 php.ini 不会听这个指令不列出弃用。

PHP 5.3.3 (cli)(构建时间:2012 年 7 月 3 日 16:53:21) 版权所有 (c) 1997-2010 PHP 集团 Zend Engine v2.3.0,版权所有 (c) 1998-2010 Zend Technologies

【问题讨论】:

  • 是的,根本没搞清楚。
  • 我想我明白了,Backupbuddy 有一个错误日志设置,由于某种原因影响了这一点。对我来说似乎是一个错误。

标签: php error-reporting


【解决方案1】:

我的解决方案与 zzapper 相同 - phprunner 的文件名是 phpfunctions.php 并且有效:

if ($errno==8192) return 0;   // ignore Deprecated

【讨论】:

    【解决方案2】:

    这花了我很长时间来调试。旧版本的 phprunner 生成的代码由于“不推荐使用的函数 mysql_connect 而崩溃。但是无论我对 error_reporting 做了什么

    error_reporting(E_ALL & ~E_DEPRECATED); // was being ignored
    

    这是因为代码使用了自己的错误处理函数“错误处理程序”

    set_error_handler("my_error_handler"); // override error_reporting()
    

    我所要做的就是将以下行添加到函数 my_error_handler()

    if ($errno==8192) return 0;   // ignore Deprecated
    

    我浪费了很多时间摆弄我的 php.ini,但这与它无关!

    【讨论】:

      【解决方案3】:

      error_reporting 可能已在您的脚本中的某处调用。

      您可以在错误发生之前使用它来重置它:

      error_reporting(E_ALL & ~E_DEPRECATED);
      

      【讨论】:

      • 这是wordpress,还能在哪里。它不在 .htaccess 中。
      • wordpress 中有很多地方。
      【解决方案4】:

      several places 可以更改此设置的值,包括相当常见的ini_seterror_reporting 函数。有人正在改变其中一个。

      【讨论】:

      • 有没有办法可以在服务器上运行搜索以找到该设置的另一个实例?
      • -ri 可能会更好; PHP 中的函数名不区分大小写,因此理论上有人可以写成 ERROR_REPORTING(E_ALL)
      • 问题是,查询永远不会结束
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 2019-07-09
      • 2014-10-12
      • 1970-01-01
      • 2010-12-17
      • 2011-03-28
      • 1970-01-01
      相关资源
      最近更新 更多