什么是隐藏PHP错误的最佳方法是在浏览器上显示?在生产服务器上抑制php错误的最佳方法
难道是使用以下:
ini_set("display_errors", 1);
任何最佳实践提示,将不胜感激的!
我记录错误,我只是想确保将display_errors值设置为关(或0)不会阻止记录错误。
什么是隐藏PHP错误的最佳方法是在浏览器上显示?在生产服务器上抑制php错误的最佳方法
难道是使用以下:
ini_set("display_errors", 1);
任何最佳实践提示,将不胜感激的!
我记录错误,我只是想确保将display_errors值设置为关(或0)不会阻止记录错误。
最好的方法当然是记录您的错误,而不是显示或忽略它们。
这个例子会将错误记录到syslog中,而不是在浏览器中显示它们。
作为替代“系统日志”,您可以放置一个文件路径并将日志写入您需要的任何位置。 – 2015-12-01 21:05:07
假设你是在php.ini文件的控制,可以在全球范围使该文件中这些变化,而不必中ini_set代码在所有的PHP文件奠定左右(这你可能会忘记放在一个有一天你的文件可能会很糟糕)。
您也可以使用Apache的.htaccess记录错误而不触及代码:
<IfModule mod_php5.c>
php_flag display_errors Off
php_flag log_errors On
php_value error_log logs/errors
</IfModule>
的最好方法?修复错误!
如果您需要一个快速临时解决方案,那么可以关闭display_errors,但要确保将它们记录在某处,因为该设置会使严重/解析错误无声无息。
不幸的是,PHP分发文件发送了一条关于处理错误消息的混合消息。默认的php.ini文件有一些适用于生产服务器的设置,其他适用于开发服务器的设置。您应该打开dev(error_reporting = E_ALL
和display_errors = On
)中的所有错误,并关闭产品(display_errors = off
,但某处指向log_errors
)。但是,尽最大努力确保没有错误(或者他们被处理)。
在您的开发机器上设置一个环境变量。那么您可以在代码的开头检查您的环境,以确保您处于开发环境中。 然后你可以通过使用error_reporting()函数来设置PHP的错误报告级别。
if (isset($_ENV['MY_APP_MODE']) && ($_ENV['MY_APP_MODE'] == 'devel')) {
error_reporting(E_ALL);
} else {
error_reporting(0);
}
正如我所说,你的错误将不会显示,但将被记录。 – 2008-12-01 23:22:58
我喜欢“最好”这个词。 – kta 2016-12-22 01:05:44