做了挺久的小程序后台,正准备上线,却发现数据返回全部正常,但是状态码全部都是500。
????第一反应是万恶的缓存,清理缓存给runtime目录777 权限,发现还是不行?
倒回去查看本地环境,发现一切正常,删除缓存和日志,测试,发现目录中日志目录和缓存目录同时生成了文件。
查看线上环境的log目录,发现权限不足,修改成777 解决。
期间搜索了下百度,发现好多答案都不知道原因。
主要答案有修改runtime目录权限,还有关闭debug。其实这两个是共通的,thinkphp 5的默认log目录在runtime里面,并且thinkphp5 默认打开debug的情况下生成日志。
所以目录权限不足,会导致500报错,应该是文件在写入的时候,没有权限导致,但是我的业务流程却是正常执行,说明thinphp5并没有把日志写入失败作为异常抛出,却改变了它的状态码。所以导致了数据正常返回,但是状态码却离奇变成了500。