在一次 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、打開項目調試模式,直接讓問題顯示到頁面上。這樣可以大大的提高我們解決問題的效率。
立即學習“PHP免費學習筆記(深入)”;
2、查看服務器日志。這個錯誤就在apache Error_log里面:PHP Fatal error: Uncaught exception ‘thinkexceptionErrorException’ with message ‘mkdir(): Permission denied’ 。
3、多去官方文檔、論壇和社區找答案,很多問題別人都已經遇到過,并且分享出來了。
4、自己多去斷行調試,去推測并驗證。不管能不能解決當前問題,都是對知識的一種鞏固。
推薦教程:PHP視頻教程