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 相关文章推荐
Google Voice 短信发送接口PHP开源版(2010.5更新)
Jul 22 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
PHP基础知识介绍
Sep 17 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
php经典算法集锦
Nov 14 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 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写MySQL数据 实现代码
2009/06/15 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
跟老齐学Python之集合的关系
2014/09/24 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
virtualenv介绍及简明教程
2020/06/23 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
PHP如何防止SQL注入
2014/05/03 面试题
岗位职责范本
2013/11/23 职场文书
大学生个人简历中的自我评价
2013/12/27 职场文书
社会实践活动总结报告
2014/04/29 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
校运会加油稿大全
2015/07/22 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书