php報500錯誤

2020-07-16 10:06:41

php報500錯誤

對於http請求報錯狀態碼為500,通常解釋是:表示伺服器遇到錯誤,無法完成請求(即伺服器內部錯誤),但具體問題還要具體分析,下面說下一些500問題及處理方案。

一、PHP程式語法錯誤導致

場景一:我們專案設定有報警監控(定時每隔10分鐘存取一下網站的一個固定連結),曾經有段時間,每天都會收到兩三次報500錯誤的郵件,但當自己再手動存取時卻存取正常…

這應該是最常見的錯誤了,語法錯誤也能很快復現,只要把報錯資訊暴露出來即可根據問題立馬解決。

如果是在本地或測試環境,通常我們是這麼處理的,在程式入口中設定輸出報錯資訊即可:

//error_reporting設定應該報告的錯誤,下面表示除了 E_NOTICE,報告其他所有錯誤
error_reporting(E_ALL ^ E_NOTICE);
//輸出錯誤
ini_set('display_errors', 1);

但線上上環境的話,因為使用者都在用,不可能允許我們就那麼赤裸裸的列印錯誤,怎麼辦呢?可以在程式入口檔案中設定將錯誤輸出到紀錄檔檔案中,具體程式碼如下:

error_reporting(E_ALL ^ E_NOTICE);
//禁止把錯誤輸出到頁面
ini_set('display_errors', 0);
//設定錯誤資訊輸出到檔案
ini_set('log_errors', 1);
//指定錯誤紀錄檔檔名
$error_dir = '/logs/err/';
$error_file = $error_dir . date('Ymd').'.log';
//目錄不存在就建立
if (!is_dir($error_dir)){
    mkdir($error_dir, 0777, true);
}
//檔案不存在就建立之
if(!file_exists($error_file)){
    $fp = fopen($error_file, 'w+');
    if($fp){
        fclose($fp);
    }
}
//設定錯誤輸出檔案
ini_set("error_log", $error_file);
//程式正常執行邏輯......

二、磁碟滿了導致

場景二:上傳圖片,一直報錯500。

因磁碟空間不足,沒有足夠空間讀寫資料而導致的500報錯極不常見,且不易及時發現。通常遇到500問題,很快想到的是程式錯誤,其實還有可能是磁碟空間不足了,如果在程式上為找到任何問題,可以檢視下是否是磁碟空間不足問題哦~

df -h 檢視磁碟空間佔用情況

以上就是php報500錯誤的詳細內容,更多請關注TW511.COM其它相關文章!