PHP-FPM:pm.process_idle_timeout vs php_admin_value [max_execution_time]

bru*_*ski 6 php

我已经设置了FCGI空闲超时值120 -idle-timeout 120在我的Apache站点配置,以确保我的PHP脚本执行完毕前,Apache不超时,但现在我想知道有什么区别设置之间php_admin_value[max_execution_time] = 120,并pm.process_idle_timeout = 120s在PHP- fpm .conf文件?

有人会覆盖另一个吗?有区别吗?如果我想在我指定的时间长度之前确保我的脚本没有超时,是否需要设置两者?

任何解释或参考都会有所帮助

Kon*_*eak 10

基于文件的注释php-fpm.conf.default:pm.process_idle_timeout与脚本执行无关.它定义了生成的FPM子项在被杀死之前必须处于空闲状态(即不处理请求)的时间.这不会以任何方式影响脚本执行(甚至不是sleep()).

PHP:运行时配置:PHP INI设置max_execution_time定义脚本执行停止之后的最长处理时间(CPU时间)(以秒为单位). 注意:上次我检查(2年前)时,这不适用于经过实时计算的Windows.

  • 因此,例如,根据我解释你的答案的方式,假设php fpm设置`process_idle_timeout`设置为`10s`,并且php ini值`max_execution_time`设置为`120`,如果请求进来需要20秒才能执行,会发生以下情况:FPM进程将被生成,该脚本将完全运行,因为它远低于120秒的上限,然后相同的FPM进程将再等待10秒以获得更多请求在杀死自己之前进入,但如果另一个请求进来,那个计时器重置等等等......这是正确的吗? (4认同)
  • 您期望的PHP-FPM相当于PHP的`max_execution_time`是[`request_terminate_timeout`](http://php.net/manual/en/install.fpm.configuration.php#request-terminate-timeout). (3认同)
  • @bruchowski 确实:) (2认同)
  • @tanius,你的评论救了我几个小时的搜索和实验。谢谢。 (2认同)