做了挺久的小程序后臺垫蛆,正準備上線,卻發(fā)現(xiàn)數(shù)據(jù)返回全部正常袱饭,但是狀態(tài)碼全部都是500。
懦趋?疹味??惑芭?第一反應(yīng)是萬惡的緩存,清理緩存給runtime目錄777 權(quán)限遂跟,發(fā)現(xiàn)還是不行?
倒回去查看本地環(huán)境凯亮,發(fā)現(xiàn)一切正常,刪除緩存和日志假消,測試岭接,發(fā)現(xiàn)目錄中日志目錄和緩存目錄同時生成了文件。
查看線上環(huán)境的log目錄啃沪,發(fā)現(xiàn)權(quán)限不足窄锅,修改成777 解決。
期間搜索了下百度入偷,發(fā)現(xiàn)好多答案都不知道原因。
主要答案有修改runtime目錄權(quán)限殿雪,還有關(guān)閉debug锋爪。其實這兩個是共通的,thinkphp 5的默認log目錄在runtime里面几缭,并且thinkphp5?默認打開debug的情況下生成日志。
所以目錄權(quán)限不足拆挥,會導致500報錯某抓,應(yīng)該是文件在寫入的時候,沒有權(quán)限導致汉矿,但是我的業(yè)務(wù)流程卻是正常執(zhí)行备禀,說明thinphp5并沒有把日志寫入失敗作為異常拋出奈揍,卻改變了它的狀態(tài)碼赋续。所以導致了數(shù)據(jù)正常返回,但是狀態(tài)碼卻離奇變成了500纽乱。