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,不用COM,生成excel文件
Oct 09 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
yii使用bootstrap分页样式的实例
Jan 17 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
php生出随机字符串
Jul 06 PHP
php封装的mongodb操作类代码
Aug 06 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
laravel5.6实现数值转换
Oct 23 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 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初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
Python subprocess模块学习总结
2014/03/13 Python
python中MySQLdb模块用法实例
2014/11/10 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
Python unittest模块用法实例分析
2018/05/25 Python
基于Python实现用户管理系统
2019/02/26 Python
python输入错误后删除的方法
2019/10/12 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
地心历险记观后感
2015/06/15 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL