首頁  >  文章  >  後端開發  >  php網站500報錯怎麼處理

php網站500報錯怎麼處理

王林
王林原創
2019-09-29 17:47:594061瀏覽

php網站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);

//程序正常执行逻辑......

剛才說的場景一問題,後來我們按照上面輸出到log的方式輸出才發現的,是因為mysql連線異常斷開而程式繼續執行(連接mysql時正常,但當呼叫具體查詢方法時報錯,記得好像是在使用方法mysqli_real_escape_string()的地方)導致的fatal級報錯,最終才順利修復了。

磁碟滿了導致

場景二:

圖片上傳不去,一直報錯500。

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

df -h 查看磁盘空间占用情况

php網站500報錯怎麼處理

推薦教學:PHP影片教學

#

以上是php網站500報錯怎麼處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn