thinkphp5.0接口数据返回了,但是Http状态为500错误

问题描述:
项目开发完成上线后发现其中一个接口返回的json数据正常,但是http状态为500错误。
解决:
首先查看接口确认非接口问题,其次查看日志,发现日志没有写入,确认是runtime文件夹线上环境的log目录,发现权限不足,修改成777 解决。
命令行如下:

chmod 777 -R /home/html/51xuejia/runtime/

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

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

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

你可能感兴趣的:(thinkphp,日志写入权限)