iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
DevOps

自架 Windows Server,打造你的專業 WordPress 部落格系列 第 8

解決 IIS 的 PHP 發生 FastCGI 處理序超過設定的活動逾時問題

  • 分享至 

  • xImage
  •  

今天在執行 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)


上一篇
WordPress 如何引用 Bootstrap 的 CSS 及 JS 檔案製作精美畫面
下一篇
WordPress 修改主題樣式 (style.css) - 常用 4 招教學
系列文
自架 Windows Server,打造你的專業 WordPress 部落格30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言