在一次 ThinkPHP5 專案部署的時候,環境為Linux伺服器。前端Vue專案透過Axios存取 接口,一直走catch的邏輯。直接在瀏覽器請求介面能傳回正常數據,但是透過Chrome瀏覽器查看請求的狀態碼為紅色的500。初步猜測前端請求不成功和ThinkPHP5 HTTP狀態碼500 有關。以下就詳細的說明如何解決ThinkPHP5 HTTP狀態碼500。 (推薦PHP影片教學)
當發現ThinkPHP5 HTTP狀態碼為標紅的500時,第一個反應是伺服器內部錯誤,也就是自己程式碼語法有問題。首先檢查這個介面的邏輯是否有問題。經過仔細排查發現並沒有問題,存取其他的介面也是類似的情況,頁面內容回傳正常,狀態碼一直是500。
然後推測是否是ThinkPHP5框架的問題,就單獨的寫了一個簡單的返回hello world。任然出現頁面內容返回正常,狀態碼一直是500的狀況。這時我仔細回顧了一下問題和之前的推測。想了很久,是不是Linux系統下runtime資料夾讀寫權限導致的呢?這時抱著試一試的心態,在命令列中使用chmod設定runtime資料夾權限解決了這個問題。
回過頭來看,推測來解決是很多不確定性的,需要很多專案實戰經驗。給一些初入行的程式設計師的建議:
1、開啟專案偵錯模式,直接讓問題顯示到頁面上。這樣可以大大的提高我們解決問題的效率。
2、查看伺服器日誌。這個錯誤就在apache error_log裡面:PHP Fatal error: Uncaught exception ‘think\\exception\\ErrorException’ with message ‘mkdir(): Permission denied’ 。
3、多去官方文件、論壇和社群找答案,很多問題別人都已經遇到過,並且分享出來了。
4、自己多去斷行調試,去推測並驗證。不管能不能解決當前問題,都是知識的一種鞏固。
推薦教學:最新ThinkPHP 5.1全球首發影片教學(60天成就PHP大牛線上訓練班課)
#以上是如何解決ThinkPHP5 HTTP狀態碼500的詳細內容。更多資訊請關注PHP中文網其他相關文章!