按照以前的印象,error_reporting(0)屏蔽不了php的Fatal error級別的錯誤,
但是今天我遇到了一個問題才發現,它竟然可以屏蔽任何錯誤,包括Fatal error,瀏覽器會看不到500錯誤碼,顯示的是200,php-fpm下的php錯誤日志里沒有任何輸出,nginx下的錯誤日志里也沒有任何輸出,
發現的程序是這樣的,下載了一個開源代碼,直接瀏覽器運行顯示空白,看各種日志都沒有錯誤資訊,使用php-xdebug配合vscode,才看得到在首頁獲取session在連接資料庫,我沒有配置任何資料庫,因此new PDO的時候連接不上,報的是Fatal error錯誤,


經過下面這幾句測驗,可以看到確實屏蔽了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] = on
/etc/php/7.4/fpm/php.ini
display_errors = On
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/117798.html
標籤:PHP
