我能';不要禁用PHP错误

我能';不要禁用PHP错误,php,ubuntu,error-reporting,Php,Ubuntu,Error Reporting,所以我试过了 ini_set('display_errors', 'Off'); error_reporting(0); 右下方尝试使用: ini_set('display_errors', 0); ini_set('display_errors', false); 不要更改错误报告的值以解决问题。如果“显示错误”处于禁用状态,则不会独立于错误报告设置显示错误。这样,您将不会显示错误,但仍可以记录错误 以下方面应起作用: ini_set('display_errors', 'Off');

所以我试过了

ini_set('display_errors', 'Off');
error_reporting(0);
右下方
尝试使用:

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

不要更改错误报告的值以解决问题。如果“显示错误”处于禁用状态,则不会独立于错误报告设置显示错误。这样,您将不会显示错误,但仍可以记录错误

以下方面应起作用:

ini_set('display_errors', 'Off');
如果不起作用,可能是您的服务器配置不允许您从PHP脚本更改设置。ini_set()在失败时返回FALSE。所以首先,您应该检查调用返回的值。确保ini_集未列在禁用的PHP函数中(PHP.ini中的禁用_函数)

如果您问自己,为什么即使在php.ini中display_errors处于关闭状态,仍会显示错误,您可以在脚本执行期间检查display_errors的实际值:

ini_get('display_errors')
Pemember表示,PHP设置也可以在Apache主机配置和.htaccess文件中更改。因此,请检查您是否具有启用显示错误的htacces。大概是这样的:

php_flag display_errors on

您没有描述错误是什么,因此可能是您的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'会找到它)。此外,如果脚本存在致命错误,则在存在致命错误时不适用:

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


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