在CentOS系統中,PHP錯誤日志的位置取決于Web服務器(Apache/Nginx)和PHP運行模式(如PHP-FPM)。常見路徑如下:
/var/log/httpd/error_log或/var/log/apache2/error.log;/var/log/nginx/error.log,PHP-FPM自身錯誤日志通常位于/var/log/php-fpm/error.log或/run/php-fpm/www-error.log;php.ini中的error_log參數(可通過php --ini命令找到php.ini路徑)。使用tail -f命令實時監控日志文件的新增內容,便于快速捕捉最新錯誤:
# 查看PHP-FPM錯誤日志(常見路徑)
sudo tail -f /var/log/php-fpm/error.log
# 查看Apache錯誤日志
sudo tail -f /var/log/httpd/error_log
# 查看Nginx錯誤日志
sudo tail -f /var/log/nginx/error.log
若需搜索特定關鍵字(如“error”“fatal”),可結合grep命令:
sudo grep "error" /var/log/php-fpm/error.log
在開發環境中,可通過修改php.ini開啟詳細錯誤顯示,讓錯誤信息直接輸出到瀏覽器(生產環境務必關閉,避免敏感信息泄露):
; 打開所有錯誤報告
error_reporting = E_ALL
; 開啟錯誤顯示(瀏覽器中可見)
display_errors = On
; 開啟錯誤日志記錄(同時寫入日志文件)
log_errors = On
; 指定自定義日志路徑(需確保PHP進程有寫入權限)
error_log = /var/log/php_errors.log
修改后重啟Web服務(Apache/Nginx/PHP-FPM)使配置生效:
# 若使用Apache
sudo systemctl restart httpd
# 若使用Nginx+PHP-FPM
sudo systemctl restart nginx
sudo systemctl restart php-fpm
錯誤日志中的每條記錄通常包含時間戳、錯誤級別(如Parse Error、Fatal Error、Warning)、錯誤消息、文件名及行號。例如:
[2025-10-02 10:00:00] ERROR: Parse error: syntax error, unexpected ';' in /var/www/html/index.php on line 15
通過上述信息可直接定位到問題代碼的位置(如/var/www/html/index.php的第15行),結合上下文檢查語法錯誤、變量未定義、數據庫連接失敗等問題。
php.ini(如zend_extension=xdebug.so)。print_r($variable)或var_dump($variable),輸出變量值以檢查數據是否符合預期(適用于簡單變量檢查)。try-catch塊捕獲異常,避免程序崩潰并輸出詳細錯誤信息:try {
// 可能出錯的代碼
$result = $db->query("SELECT * FROM users");
} catch (PDOException $e) {
echo "數據庫錯誤:" . $e->getMessage();
}
php -v查看版本,使用Remi倉庫升級PHP。Call to undefined function mysql_connect()),需安裝對應擴展(如sudo yum install php-mysqlnd)并重啟服務。php.ini中的memory_limit(內存限制)、max_execution_time(執行時間)等參數,若資源不足會導致腳本終止,調整后重啟服務。