解决 IIS 的 PHP 发生 FastCGI 处理序超过设定的活动逾时问题

今天在执行 WordPress 上的版本更新时,因为更新档案太大,出现了错误「FastCGI 处理序超过设定的活动逾时」。

这是执行 FastCGI 过久而发生的 Timeout 的问题,要修改 FastCGI Timeout 设定需要到 IIS 的设定档。

修改 IIS 设定档

路径为: C:\Windows\System32\inetsrv\config\applicationHost.config
用纯文字开启 applicationHost.config
然後搜寻 「」,找到以下设定

<fastCgi>
	<application fullPath="E:\Project\WebServer\php-7.4.7-nts-Win32-vc15-x64\php-cgi.exe" />
</fastCgi>

fullPath 的设定值依个人环境有所不同。

增加 fastCgi /application 的 timeout 设定 requestTimeout="900" activityTimeout="180"
修改後的结果为

<fastCgi>
	<application fullPath="E:\Project\WebServer\php-7.4.7-nts-Win32-vc15-x64\php-cgi.exe" requestTimeout="900" activityTimeout="180"/>
</fastCgi>

修改说明

requestTimeout:
指定应用程序提出要求的允许时间上限。 如果 FastCGI 处理序处理单一要求时所花费的时间超过指定的时间长度,系统就会终止此处理序。 预设值为 90 秒,建议修改值为 900 秒。

activityTimeout:
指定应用程序的 FastCGI 处理序逾时之前,允许此处理序未与 IIS 通讯执行的时间长度上限。 这个逾时值可用来侦测并关闭停止回应的处理序。 预设值为 30 秒,建议修改值为 180 秒。

修改完成之後,在重启 IIS 上的网站就可以了喔。

FastCGI 是什麽?

FastCGI 是 IIS 与 PHP 之间的沟通闸道器。

在讲 FastCGI 前先解释一下 CGI,CGI 全称是「公共闸道器介面 (Common Gateway Interface)」,HTTP 服务器与你的或其它机器上的程序进行交谈的一种工具,其程序须执行在网路服务器上。

而 FastCGI 是一种常驻型的 CGI,当 PHP 启动时、会去寻找 php.ini,进行环境的初始化,如果不使用 FastCGI 的情况下,每一个请求都会做这个动作,很明显浪费系统资源,所以 FastCGI 会先启动一个 master,解析配置文件用,接下来再启动 worker,当请求过来时,master 会递资讯给 worker,然後接下来等下一个请求,有这个机制就不用每一次重新跑一次初始化的动作了。

想要了解更多的 IIS 上相关 FastCGI 设定,可参考以下网址:
https://forsenergy.com/zh-tw/inetsrvmmc/html/e3ce5574-abc0-4108-a8f7-d7ac6452a534.htm

相关学习文章

WordPress 安装布景主题遇到 No working transports found 错误
Windows Server IIS 如何安装 PHP 网页服务器
如何让 IIS 底下的 PHP 显示错误内容 (500 Error)


<<:  Day2 线性回归(Linear Regression)

>>:  [Day07] Tableau 轻松学 - 开始画面

DAY22 - 利用开发者工具列Network import export debug

身为工程师的人,一定无法避免的就是面对BUG! 那有什麽方式debug呢? 如果bug发生在别人的电...

从架构开始重新认识Day2

MVC介绍 希望能将复杂的东西简单化 如果给我一句话我会说下面这句 Model、View、Contr...

Day 15. 常见模板 Template OS Linux / Windows by Zabbix agent 介绍

今天要跟大家介绍 在 ubuntu 安装 Zabbix Agent 时,设定的 Template O...

Day 11: 人工神经网路初探 基础知识建立

前篇我们介绍了关於机器学习的基础名词以及分类总集,接下来就让我们细讲人工神经网路的运作原理及基础结构...

Day 7 图片去背 ( 遮罩 )

图片去背 ( 遮罩 ) 教学原文参考:图片去背 ( 遮罩 ) 这篇文章会介绍使用 GIMP 的图层遮...