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;

 

时间: 2024-08-03 05:22:38

PHP-Fcgi下PHP的执行时间设置方法的相关文章

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

一般情况下设置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 Gatew

Centos下IP与DNS设置方法详解_服务器其它

本文较为详细的讲述了Centos下IP与DNS设置方法.分享给大家供大家参考,具体如下: 1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameserver 8.8.4.4 #google域名服务器 2.CentOS 修改网关 修改对应网卡的网关的配置文件 [root@centos]# vi /etc/sysconfig/network 修改以下内容 NETW

Apache下服务器虚拟主机设置方法介绍

一.WWW服务器虚拟主机原理 WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器.比如由一台机器同时提供http://www.company1.com, http://www.company2.com 等的WWW服务,而浏览这些WWW站点的用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别. 使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行成本,并且可以减少管理的难度.另外,对于个人用户,也可以使用这种虚拟主机方式

win7系统下Office2013登录功能设置方法

  office工具一直是办公过程中必备的一个软件,从最初的office2003到现在的2013都在不断的进步之中,功能不断的强大,操作步骤也在不断的规范,现在的office2013需要账户登入才可使用,同时支持OneDrive同步功能,这么看上去真的是变得高端不少,但是同时也带来了不便.很多习惯于以往操作方法的用户们不想登入账户,那么在win7旗舰版电脑中如何对Office2013登录功能进行设置呢?下面小编就为大家一一讲解. Office2013登录功能设置方法 1.首先,咱们在win7旗舰

Windows 2008下VPN网络连接设置方法

不少移动办公人士常常出差在外,在这种情形下,如果需要经常访问单位局域网中的重要内容时,该如何进行呢?也许有人会毫不犹豫地说,通过远程拨号访问连接就能轻松实现随心所欲访问单位局域网的目的:话虽如此,不过传统的远程拨号访问操作,无论是在安全性方面还是经济性方面都得不到有效保证,而且操作起来也比较麻烦.有鉴于此,VPN网络连接便应运而生了:通过VPN网络连接,任何一个位于Internet网络中的用户,都能象直接位于单位局域网一样,来访问重要服务器或主机中的内容,而且这个访问连接过程比较安全.比较经济.

Linux下时区与时间设置方法

首先要说明的是我的系统是fedora,其他系统可能不完全相同. 1,时间保存在硬件实时钟(RTC)中,RTC由主板电池供电,即使关断电源也不会造成时间丢失. 2,系统启动时从RTC获取时间,这个步骤在rc.sysinit中做: a,首先从/etc/sysconfig/clock中获取RTC相关参数UTC/ARC/SRM.UTC为true表示RTC保存的时间是UTC时间,false表示保存的是本地时间.ARC与SRM的含义参考hwclock的manpage,一般false即可: b,根据上面获取的

win7电脑自动关机设置方法

近很多的朋友都在讨论win7电脑怎么自动关机?那么今天小编为大家介绍下win7电脑自动关机设置方法. 1.在开始菜单底部的搜索栏输入"计划任务",打开计划任务程序. 2.通过"任务计划程序"中单击创建基本任务... ,打开任务向导 3.在"创建基本任务向导"中名称一栏,输入事件名称,如"关机",点下一步 4.触发器选择关机频率和时机,然后下一步 5.在"操作"部分,选择启动程序 输入脚本"shut

联想笔记本光驱启动设置方法

由于笔记本的bios和台式机有一定区别,很多使用笔记本的用户在重装系统时不知道怎么设置光驱启动.今天,小编就以主流的联想笔记本为例给大家讲解下光驱启动的设置方法. 方法一 1 启动计算机,并按住DEL键(或者F2键)不放,直到出现BIOS设置窗口(通常为蓝色背景,黄色英文字). 2. 选择并进入第二项,"BIOS SETUP"(BIOS设置).在里面找到包含BOOT文字的项或组,并找到依次排列的"FIRST""SECEND""THIRD

站长福音 最全的伪静态规则和设置方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近陆续有很多站长过来询问伪静态的问题,现就分享下目前网上流行的各种程序在iis下的规则和设置方法: 1.shopex4.8 下载3.0的免费Rewrite组件 http://www.helicontech.com/download/isapi_rewrite/ISAPI_Rewrite3_0056_Lite.msi 按照默认路径安装后,打开