我无法禁用PHP错误

时间:2014-07-30 01:58:33

标签: php ubuntu error-reporting

所以我正在尝试

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。有任何想法吗?

3 个答案:

答案 0 :(得分:2)

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

以下内容应该有效:

ini_set('display_errors', 'Off');

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

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

ini_get('display_errors')

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

php_flag display_errors on

答案 1 :(得分:1)

尝试使用:

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

答案 2 :(得分:1)

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

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

如果它在你的php.ini中关闭,我的猜测是它被覆盖在其他地方 - 要么在后面的脚本中(&#39; grep&#34; ini_set&#34; /path/to/project/*.php'会找到它)。此外,PHP Manual指出如果脚本有致命错误,如果存在致命错误则不适用:

  

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