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简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
详解php中 === 的使用
Oct 24 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
PHP APP微信提现接口代码
Sep 30 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
面包屑导航详解
2017/12/07 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
python开启多个子进程并行运行的方法
2015/04/18 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
string = null 和string = ''的区别
2013/04/28 面试题
护士自我评价范文
2014/01/25 职场文书
挂职自我鉴定
2014/02/26 职场文书
端午节活动总结报告
2015/02/11 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
Python实现列表拼接和去重的三种方式
2021/07/02 Python