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脚本的10个技巧(7)
Oct 09 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
php中http_build_query 的一个问题
Mar 25 PHP
php防注入及开发安全详细解析
Aug 09 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
PHP队列用法实例
Nov 05 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
PHP封装的mysqli数据库操作类示例
Feb 16 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代码
2007/03/03 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
javascript表单验证大全
2015/08/12 Javascript
JavaScript File分段上传
2016/03/10 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
bootstrap实现tab选项卡切换
2020/08/09 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
网络教育毕业生自我鉴定
2013/10/10 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
绿色校园广播稿
2014/10/13 职场文书
英语邀请函范文
2015/02/02 职场文书
小学生读书笔记范文
2015/06/30 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android