停止将php错误消息打印到浏览器
我正在使用PHP5.3、CentOS 6.2、HTTPD2.2.15和NetBeans 7.0.1(通过ftp远程运行) 我想停止向浏览器打印错误消息,它打印到httpd的错误日志就足够了 我认为通过尝试/捕获,我可以自己决定如何处理错误,但它仍然会打印到错误日志和浏览器中停止将php错误消息打印到浏览器,php,linux,netbeans,error-handling,apache,Php,Linux,Netbeans,Error Handling,Apache,我正在使用PHP5.3、CentOS 6.2、HTTPD2.2.15和NetBeans 7.0.1(通过ftp远程运行) 我想停止向浏览器打印错误消息,它打印到httpd的错误日志就足够了 我认为通过尝试/捕获,我可以自己决定如何处理错误,但它仍然会打印到错误日志和浏览器中 function smic_gettext($phrase){ try{ $tr_text = $this->language_array[$phrase];
function smic_gettext($phrase){
try{
$tr_text = $this->language_array[$phrase];
} catch(Exception $e){
error_log("Couldn't find any entry in the translation file for ".$phrase.". ".$e);
return $phrase;
}
return $tr_text;
}
我应该如何配置以停止此行为
我已经尝试在php.ini中设置display_errors=Off和display_errors=0。没有区别(我确实重新启动了httpd) 尝试将以下内容添加到脚本顶部:
ini_set('display_errors',0);
这应该将错误报告设置为“无”,并覆盖servers php.ini设置(有时会忽略错误报告(0))请参见
显示错误
指令
是否将PHP错误发送到浏览器由PHP.ini设置决定:
显示错误
。将其设置为Off
,以避免输出。此文件通常位于/etc/php.ini
或/etc/php5/php.ini
下。您需要将php.ini设置更改为关闭
或0
。您可以在实际的php.ini中使用.htaccess文件执行此操作,也可以在脚本开始时调用:
ini_set('display_errors', '0');
在php.ini中,您可以保留系统日志错误,但不向浏览器写入任何内容。如果要隐藏错误和警告,还可以设置错误处理程序
请参见FWIW,而
display\u errors=off
是正确的配置文件行,正如其他人所说,在DreamHost(可能是其他安装)上,它会进入
$HOME/.php/phprc
而不是php.ini(它可能也可以工作,但DreamHost——还有其他可能——支持phprc)。如果错误只出现在一行中,则可以通过在该行的开头添加符号@来防止错误显示 @您的\u自定义\u命令 例如:
@file_get_contents('custom_file.txt');
生产环境应该在
PHP.ini
文件中禁用PHP错误/通知,并且只记录到日志文件端注意:PHP中的错误不是异常(例如Java),但有一种方法可以将其转换为异常并相应地处理。请参阅@DaveRandom OP,他在CentOS上,而在CentOS上,这通常是路径。我希望对所有脚本都这样做,因此配置php.ini似乎是最好的方法。我确实尝试过display\u error=Off和display\u error=0,重新启动httpd,但没有区别。应该是display\u errors(复数),而不是error。如果这只是一个输入错误,并且display_errors设置为Off,请确保脚本中没有“overruling”display_错误(例如,使用其他人建议的ini_set方法),并且在.htaccess文件中没有类似于php_flag display_errors Off
的内容(如果您有),只是在我的评论中我把它变成了单数(不能再更新了)。我没有使用任何.htaccess文件。将错误报告设置为0也不会导致记录任何错误。我不建议在生产环境中这样做。设置ini\u集('display\u errors',0)代码>应该足够了。Mchl和klennepette,谢谢你们的帮助。Nicsoft,他们是对的,只是ini_集('display_errors',0);我想对所有脚本都这样做,所以配置php.ini似乎是最好的方法。我确实尝试过display\u error=Off和display\u error=0,重新启动了httpd,但没有区别。您尝试过“display\u error”,但关键字是“display\u errors”,很抱歉,这不仅仅是我评论中的一个输入错误,我使用了display\u errors。您检查过了吗,文件中没有出现其他“display\u errors”?这非常令人尴尬。。。有重复的显示错误条目。我想是时候休息一下了。谢谢!我希望对所有脚本都这样做,因此配置php.ini似乎是最好的方法。我确实尝试过display_errors=Off和display_errors=0,重新启动了httpd,但没有什么不同。谢谢,这帮了大忙。
@file_get_contents('custom_file.txt');