定位解决php报500错误过程

北城以北 提交于 2020-02-11 16:29:13

过程

部署一个php工程,请求接口提示500:
**定位解决php报500错误过程**

第一步:加错误输出 ,入口首行:

error_reporting(E_ALL);

再次执行,还是500,页面无错误信息。

第二步:看php错误日志,找下php日志路径:

php -r “phpinfo();” | grep -I error_log

error_log 没有配置,在php.ini新增:

error_reporting = E_ALL
error_log = /data/php_errors.log

确认添加成功,再次执行,错误日志还是没有。
原因:怀疑错误日志没有写入权限,chmod 777 /data/php_errors.log

还是不行。

第三步:改用php-cli执行

php test.php

发现,并未报错,关键信息: 通过url请求和cli请求结果不一致!

第四步:写个phpinfo测试脚本,通过url请求,发现error_reporting=0,并不是设置E_ALL=32767,再回头看接口代码,原来后面error_reporting被覆盖了

修改,重新执行,error_log终于有错误信息:日志目录权限不够,这也是为什么cli执行能成功(root用户),而url执行失败的原因。

总结

  1. 可通过phpinfo 查看php.ini和error路径;
  2. 遇到问题首先确认目录权限问题,大多php工程问题最终可能都是权限问题!
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!