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 相关文章推荐
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
PHP错误提示的关闭方法详解
Jun 23 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
php中JSON的使用与转换
Jan 14 PHP
Laravel 5框架学习之环境与配置
Apr 08 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
php表单处理操作
Nov 16 PHP
Memcached介绍及php-memcache扩展安装
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
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
php通过session防url攻击方法
2014/12/10 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
使用js 设置url参数
2013/07/08 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
python ip正则式
2009/05/07 Python
python获得图片base64编码示例
2014/01/16 Python
Python操作MySQL简单实现方法
2015/01/26 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
Python底层封装实现方法详解
2020/01/22 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
小学雷锋月活动总结
2014/07/03 职场文书
实习协议书
2015/01/27 职场文书
网吧员工管理制度
2015/08/05 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
用Python实现屏幕截图详解
2022/01/22 Python
python中 .npy文件的读写操作实例
2022/04/14 Python