首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 錯誤顯示配置完全指南:php.ini、運行時控制與錯誤級別詳解

     編輯:PHP 相關知識

核心配置指令

指令默認值說明
display_errorsOff是否在頁面輸出錯誤信息。生產環境必須 Off,開發環境 On。
display_startup_errorsOffPHP 啟動階段錯誤(如擴展載入失敗)是否顯示。
error_reportingE_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED錯誤報告級別位掩碼。
log_errorsOff是否記錄錯誤到日誌。
error_logNULL錯誤日誌文件路徑(需寫入權限)。

錯誤級別常量對照表

值常量說明
1E_ERROR致命運行時錯誤,腳本終止
2E_WARNING運行時警告,腳本繼續
4E_PARSE編譯時語法解析錯誤
8E_NOTICE運行時通知(如未定義變量)
16E_CORE_ERRORPHP 初始化致命錯誤
32E_CORE_WARNINGPHP 初始化警告
64E_COMPILE_ERROR編譯時致命錯誤
128E_COMPILE_WARNING編譯時警告
256E_USER_ERROR用戶觸發致命錯誤
512E_USER_WARNING用戶觸發警告
1024E_USER_NOTICE用戶觸發通知
2048E_STRICT代碼標準化建議(PHP 5.4+ 併入 E_ALL)
4096E_RECOVERABLE_ERROR可捕獲的致命錯誤
8191E_ALL所有錯誤(PHP 5.4+ 含 E_STRICT)

配置最佳實踐

開發環境 php.ini

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = "/var/log/php_errors.log"

生產環境 php.ini

display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
log_errors = On
error_log = "/var/log/php_errors.log"
html_errors = Off

運行時動態控制(無 php.ini 權限時)

<?php
// 開發調試
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

// 生產環境臨時調試單腳本
ini_set('display_errors', '0');
error_reporting(E_ALL & ~E_NOTICE);
ini_set('log_errors', '1');
ini_set('error_log', __DIR__ . '/php_error.log');

修改生效注意事項

  • 修改 php.ini 後**必須重啟 PHP-FPM/Apache** 生效。
  • CLI 模式讀取独立 php.ini(通常為 /etc/php/cli/php.ini),需單獨修改。
  • .user.ini(PHP 5.3+)可在目錄級覆蓋部分配置,適合虛擬主機。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved