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 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
基于PHP文件操作的详解
Jun 05 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
php无限级分类实现评论及回复功能
Feb 18 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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
function.inc.php超越php
2006/12/09 PHP
php+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
UserData用法总结 lanyu出品
2010/07/01 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
Python中字符串的格式化方法小结
2016/05/03 Python
python实现用户登录系统
2016/05/21 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
python实现简单http服务器功能
2018/09/17 Python
flask 实现token机制的示例代码
2019/11/07 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
淘宝店策划方案
2014/06/07 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
如何优化vue打包文件过大
2022/04/13 Vue.js