debian修改PHP因为执行时间太长,报500错误
报错提示: PHP Fatal error: Maximum execution time of 30 seconds exceeded in ……..
解决方案
1. 1内存超限
此问题是因为我不仅抓数据,还写数据进入数据库,会占用大量的缓存资源,因此mysql当缓存过多时,执行效率会下降,可能造成mysql入库等待时间过长,因此导致该错误产生,脚本不再继续执行
解决方案:在for循环里循环100次左右,执行ob_flush()函数清除缓存
关于php的几个清除缓存的相关函数也贴在这里,供大家参考:
1 2 3 4 5 6 7 |
ob_start() // 开启大小无限制的缓冲区 ob_clean() / ob_flush() // 清空/冲出 当前缓冲区 ob_get_contents() // 获取 当前缓冲区的内容 ob_end_clean() / ob_end_flush() // 清空/冲出 并关闭 当前缓冲区 |
1.2 执行时间过长
可能就是你的脚本在执行某个步骤时,执行时间过长,因此报错。
解决方案:(1)在配置文件php.ini里将max_execution_time = 30 改为 =0(0代表无限制),此方法一劳永逸
(2)在每个脚本执行的程序开头加一句 set_time_limit(0) 即可