
你是cli模式还是cgi模式?cli模式不用设默认就是无时间限制,cgi默认是有30秒超时限制。
你可以先看看每次中断是固定时长,还是固定次数;也可以多打日志,每次循环都输出些参考参数如循环条件、内存使用等信息,再分析哪些可能导致程序中断的原因。
第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。
第二种原因:在phpini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway
第三种原因:在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpmconf 将其中的max_children值适当增加。
第四种原因:php执行超时,修改/usr/local/php/etc/phpini 将max_execution_time 改为300。
第五种原因:磁盘空间不足,如mysql日志占用大量空间。
第六种原因:查看php-cgi进程是否在运行。
具体代码如下:
<php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
>
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
php中缺省的最长执行时间是 30 秒,这是由 phpini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序。
设置的办法是:
一、直接修改phpini 中 max_execution_time 的数值。
二、在没权限修改phpini文件时,在 PHP 程序中加入 ini_set('max_execution_time', '0'),数值 0 表示没有执行时间的限制。
以上就是关于php处理大量数据时,运行到一定时间就中断了,请问如何解决全部的内容,包括:php处理大量数据时,运行到一定时间就中断了,请问如何解决、遇到502 bad gateway怎么解决、PHP中几种常见的超时处理全面总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)