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调用数据库的存贮过程!
Oct 09 PHP
ie6 动态缩略图不显示的原因
Jun 21 PHP
基于php权限分配的实现代码
Apr 28 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
PHP Include文件实例讲解
Feb 15 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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上传、管理照片示例
2006/10/09 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP CURL使用详解
2019/03/21 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
js里面的变量范围分享
2020/07/18 Javascript
python使用正则表达式提取网页URL的方法
2015/05/26 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
Python常用库大全及简要说明
2020/01/17 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
市场营销专业个人求职信范文
2013/12/14 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
神农溪导游词
2015/02/11 职场文书
奖励申请报告范文
2015/05/15 职场文书
在职证明范本
2015/06/15 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书