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 相关文章推荐
PHP中的日期处理方法集锦
Jan 02 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
Jul 10 PHP
解析MySql与Java的时间类型
Jun 22 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
php微信高级接口群发 多客服
Jun 23 PHP
PHP仿微信发红包领红包效果
Oct 30 PHP
PHP单态模式简单用法示例
Nov 16 PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 23 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
php获取apk包信息的方法
2014/08/15 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
Nginx实现反向代理
2017/09/20 Servers
PHP自动识别当前使用移动终端
2018/05/21 PHP
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
应届生的求职推荐信范文
2013/11/30 职场文书
社区春季防火方案
2014/06/02 职场文书
立志成才演讲稿
2014/09/04 职场文书
党员个人剖析材料
2014/09/30 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
工作简历自我评价
2015/03/11 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
酒店温馨提示语
2015/07/14 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
高一化学教学反思
2016/02/22 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python