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 类型转换函数intval
Jun 20 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
php使用curl存储cookie的示例
Mar 31 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
Apr 26 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实现按照权重随机排序数据的方法
2015/01/09 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
深入理解PHP内核(一)
2015/11/10 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
Python实现的ini文件操作类分享
2014/11/20 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
Python是怎样处理json模块的
2020/07/16 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
中学生班主任评语
2014/01/30 职场文书
培训班主持词
2014/03/28 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
支行行长竞聘报告
2014/11/06 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
干部考核工作总结2015
2015/07/24 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
教师读书活动心得体会
2016/01/14 职场文书