做了挺久的小程序后臺,正準備上線,卻發現數據返回全部正常,但是狀態碼全部都是500。
????第一反應是萬惡的緩存,清理緩存給runtime目錄777 權限,發現還是不行?
倒回去查看本地環境,發現一切正常,刪除緩存和日志,測試,發現目錄中日志目錄和緩存目錄同時生成了文件。
查看線上環境的log目錄,發現權限不足,修改成777 解決。
期間搜索了下百度,發現好多答案都不知道原因。
主要答案有修改runtime目錄權限,還有關閉debug。其實這兩個是共通的,thinkphp 5的默認log目錄在runtime里面,并且thinkphp5?默認打開debug的情況下生成日志。
所以目錄權限不足,會導致500報錯,應該是文件在寫入的時候,沒有權限導致,但是我的業務流程卻是正常執行,說明thinphp5并沒有把日志寫入失敗作為異常拋出,卻改變了它的狀態碼。所以導致了數據正常返回,但是狀態碼卻離奇變成了500。