Thinkphp5 线上部署 正常返回数据,状态码却是500

做了挺久的小程序后台,正准备上线,却发现数据返回全部正常,但是状态码全部都是500。

????第一反应是万恶的缓存,清理缓存给runtime目录777 权限,发现还是不行?

倒回去查看本地环境,发现一切正常,删除缓存和日志,测试,发现目录中日志目录和缓存目录同时生成了文件。

查看线上环境的log目录,发现权限不足,修改成777 解决。

期间搜索了下百度,发现好多答案都不知道原因。

主要答案有修改runtime目录权限,还有关闭debug。其实这两个是共通的,thinkphp 5的默认log目录在runtime里面,并且thinkphp5 默认打开debug的情况下生成日志。

所以目录权限不足,会导致500报错,应该是文件在写入的时候,没有权限导致,但是我的业务流程却是正常执行,说明thinphp5并没有把日志写入失败作为异常抛出,却改变了它的状态码。所以导致了数据正常返回,但是状态码却离奇变成了500。

你可能感兴趣的:(Thinkphp5 线上部署 正常返回数据,状态码却是500)