过程
部署一个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执行失败的原因。
总结
- 可通过phpinfo 查看php.ini和error路径;
- 遇到问题首先确认目录权限问题,大多php工程问题最终可能都是权限问题!
来源:CSDN
作者:yinnnnnnn
链接:https://blog.csdn.net/qq_35440678/article/details/104261532