[PHP] error_reporting(0)能够屏蔽Fatal error错误

按照之前的印象,error_reporting(0)屏蔽不了php的Fatal error级别的错误。
可是今天我遇到了一个问题才发现,它居然能够屏蔽任何错误,包括Fatal error,浏览器会看不到500错误码,显示的是200,php-fpm下的php错误日志里没有任何输出,nginx下的错误日志里也没有任何输出。php

发现的过程是这样的,下载了一个开源代码,直接浏览器运行显示空白。看各类日志都没有错误信息,使用php-xdebug配合vscode,才看获得在首页获取session在链接数据库,我没有配置任何数据库,所以new PDO的时候链接不上,报的是Fatal error错误。nginx


通过下面这几句测试,能够看到确实屏蔽了Fatal error,语法错误屏蔽不了数据库

<?php
error_reporting(0);
new aaa();
?>
<?php
error_reporting(0);
new PDO();
?>

 

个人测试环境为ubuntu,PHP版本是7.4,日志配置了下面这些,全均可以无视掉
/etc/php/7.4/fpm/pool.d/www.conf
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/php/www-error.log
php_admin_flag[log_errors] = onubuntu

/etc/php/7.4/fpm/php.ini
display_errors = On浏览器

相关文章
相关标签/搜索