项目使用yii1.1版本,遇到莫名的异常结束,200状态,内容为空
今天遇到一个神奇的现象
项目使用yii1.1版本,遇到莫名的异常结束,200状态,内容为空
报表页面,ajax请求数据,时而正常返回数据,时而异常
无任何报错信息,php-fpm也无报错,PHP 7.0版本,PHP报错级别已设置为E_ALL,各种方法都尝试了,找不到原因
本地同请求测试一切正常,生产环境异常
一天时间已经过去,无解
第2天,决定在代码中打断点试的,一步一步排查
最终确定原因:
在报表数据查询后处理过程中,使用了4层循环,加上数据查了4个月的日报表,数据量并不高
循环中,把PHP设置的内存用尽,导致异常结束
配置为128M,代码中没有修改内存大小
解决方法:在代码前使用 ini_set('memory_limit', '256M'); 设置内存解决;
难排查的原因在于,找不到任何报错信息。。。。。
对了,报错信息是用Yii::log()方法输出到文件中,tail -f 查看文件的内容来找,可能是这个原因,由于PHP内存已经用尽,后面代码执行不了,所以没有输出内容到文件?(还有个疑点,就是控制器都没执行?这不应该啊)
记录一下
版权属于:Joyber
本文链接:https://blog.qqvbc.com/default/429.html
转载时须注明出处及本声明
这个学习了,谢谢分享