PHP-Fcgi下PHP的执行时间设置方法


Posted in PHP onAugust 02, 2013

一般情况下设置PHP脚本执行超时的时间

一、在php.ini里面设置

max_execution_time = 1800;
二、通过PHP的ini_set 函数设置

ini_set("max_execution_time", "1800");
三、通过set_time_limit 函数设置

set_time_limit(1800);

PHP-Fcgi下PHP的执行时间设置方法

昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误

经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒:

max_execution_time = 300

再查nginx的相关配置,无果。

写了一个php的测试页再测

echo 'aaa';
set_time_limit(0);
sleep(40);
echo 'aa';

依然超时,可以确定set_time_limit这个函数没生效。

再查php-fcgi的配置php-fpm.conf,下边这个设置疑似有问题

<VALUE name="request_terminate_timeout">30s</VALUE>

查官方文档:http://php-fpm.org/wiki/Configuration_File

request_terminate_timeout - The timeout (in seconds) for serving a single request after which the worker process will be terminated. Should be used when 'max_execution_time' ini option does not stop script execution for some reason. Default: "5s". Note: '0s' means 'off'

大意是php中set_time_limit设置的时间内如果php还没执行完,则走此处的配置,也就是request_terminate_timeout=30秒。
先把这个参数改的和php中set_time_limit值一样,都是300秒,还不行,不理解为什么,如果高手知道请赐教。

最终把request_terminate_timeout关闭,程序可以正常执行了,问题解决

<VALUE name="request_terminate_timeout">0s</VALUE>

补充:如果前端的nginx服务器使用了upstream负载均衡,那个负载均衡配置中以下几个参数也需要相应修改

 proxy_connect_timeout       300s; 
 proxy_send_timeout          300s;  
 proxy_read_timeout          300s;
PHP 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
PHP的中问验证码
Nov 25 PHP
PHP url 加密解密函数代码
Aug 26 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
php实现的CSS更新类实例
Sep 22 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
Symfony控制层深入详解
Mar 17 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
微信支付的开发流程详解
Sep 13 PHP
php数值计算num类简单操作示例
May 15 PHP
基于php中使用excel的简单介绍
Aug 02 #PHP
PHP自动识别字符集并完成转码详解
Aug 02 #PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 #PHP
php实现查询百度google收录情况(示例代码)
Aug 02 #PHP
浅析PHP Socket技术
Aug 02 #PHP
php中如何防止表单的重复提交
Aug 02 #PHP
浅析51个PHP处理字符串的函数
Aug 02 #PHP
You might like
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
Javascript倒计时代码
2010/08/12 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
ES6的新特性概览
2016/03/10 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
Python ZipFile模块详解
2013/11/01 Python
python根据出生日期返回年龄的方法
2015/03/26 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
python使用matplotlib画饼状图
2018/09/25 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
Python sorted排序方法如何实现
2020/03/31 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
什么是Web Service?
2012/07/25 面试题
应聘面试自我评价
2014/01/24 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
工程承包协议书
2014/04/22 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
党员批评与自我批评
2014/10/15 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
Python学习之os包使用教程详解
2022/03/21 Python
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android