PHP教程

php-fpm request_terminate_timeout 和php.ini的max_execution_time

本文主要是介绍php-fpm request_terminate_timeout 和php.ini的max_execution_time,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

web请求php执行时间受到2方面控制,一个是php.ini的max_execution_time(要注意的是sleep,http请求等待响应的时间是不算的,这里算的是真正的执行时间),另一个是php-fpm request_terminate_timeout 设置,这个算的是请求开始n秒。

request_terminate_timeout引起的资源问题

request_terminate_timeout的值如果设置为0或者过长的时间,可能会引起file_get_contents的资源问题。
如果file_get_contents请求的远程资源如果反应过慢,file_get_contents就会一直卡在那里不会超时。我们知道php.ini 里面max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。

真正能够控制 PHP 脚本最大执行时间的是 php-fpm.conf 配置文件中的request_terminate_timeout参数。
request_terminate_timeout默认值为 0 秒,也就是说,PHP 脚本会一直执行下去。
这样,当所有的 php-cgi 进程都卡在 file_get_contents() 函数时,这台 Nginx+PHP 的 WebServer 已经无法再处理新的 PHP 请求了

这篇关于php-fpm request_terminate_timeout 和php.ini的max_execution_time的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!