您当前的位置: 首页 > 网站编程 > PHP教程 > PHP-Fcgi下PHP的执行时间设置方法

PHP-Fcgi下PHP的执行时间设置方法

作者:不详 来源:网络 发布时间: 2014-08-18 12:05 点击:
昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误,原来PHP-Fcgi下的设置执行时间与isapi的不同 一般情况下设置PHP脚本执行超时的时间 一、在php.ini里面设置 max_execution_time = 1800; 二、通过PHP的ini_set 函数设置 ini_se

PHP-Fcgi下PHP的执行时间设置方法

  昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误,原来PHP-Fcgi下的设置执行时间与isapi的不同

  一般情况下设置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-Fcgi下PHP的执行时间设置方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4