Iis-6

如何讓最新的 FastCGI 和 PHP 版本在 IIS 6 上和平共存?

  • October 15, 2014

我一直在嘗試讓任何類型的 PHP 在 IIS 6 上執行。我以某種方式成功地使用 php5isapi.dll 文件成功執行了 5.1.4 版。但是,我想升級網站以開始使用內容管理系統。我以前從未研究過 CMS,所以我對易於使用的程序持開放態度。我目前正在研究 TomatoCMS 和 ImpressCMS——但這不是重點。

我以前從未安裝過 PHP,我想我已經熟悉它的工作原理了。然而目前的情況是這樣的。Microsoft 的 Web Platform Installer 2.0 為我安裝了 FastCGI。我需要為 CMS 系統升級到 PHP 5.3.1。所以我下載了 Windows 安裝程序並讓它繼續執行。

在查閱了其他幾篇部落格文章之後,我相信我知道它應該如何工作,但我目前沒有運氣。

設置

*.php 是 IIS 6 中所有網站的註冊副檔名(在 Win 2k3 上)。它呼叫的應用程序是 C:\Windows\system32\inetsvr\fcgiext.dll,就像它應該的那樣。

fcgiext.ini 配置具有正確的行:

$$ Types $$ php=PHP $$ PHP $$ ext=C:\程序文件\PHP\php-cgi.exe 並且 php.ini 文件也有正確的配置。所有擴展都被禁用,我為 FastCGI 更改了正確的東西。並且所有內容都使用 PATH 變數正確註冊。一切都正是它應該的樣子。

但是當我在另一台電腦上啟動“info.php”頁面()時,出現以下錯誤:

FastCGI 錯誤 FastCGI 處理程序無法處理請求。

錯誤詳情:

* Section [PHP] not found in config file.
* Error Number: 1413 (0x80070585).
* Error Description: Invalid index.

HTTP 錯誤 500 - 伺服器錯誤。網際網路資訊服務 (IIS)

一個快速的Google搜尋顯示,就 INI 和 php 擴展的映射而言,我已經正確設置了所有內容。我完全不知所措。有沒有人有什麼建議?儘管伺服器託管了三個小型網站,但我並不真正關心我必須對其進行哪些操作才能使其正常工作。

我也很難讓 FCGI 和 PHP 在我的伺服器上與 IIS6 和平共處,儘管我遇到了不同的問題。根據您從 fcgiext.ini 文件中發布的內容,您似乎需要稍微不同的配置選項,即需要設置 ExePath 而不是 ext。這是我的生產伺服器上託管幾十個站點的 fcgiext.ini 文件的片段:

[Types]
php:633747741=PHP-TEST
php=PHP-Production

[PHP-Production]
ExePath="C:\Program Files\PHP-5.2.10-nts-vc6\php-cgi.exe"
EnvironmentVars=PHPRC:C:\Program Files\PHP-5.2.10-nts-vc6
InstanceMaxRequests=1000
ActivityTimeout=1200
RequestTimeout=1800
MaxInstances=100

[PHP-TEST]
ExePath="C:\Program Files\php-5.2.12-nts\php-cgi.exe"
EnvironmentVars=PHPRC:C:\Program Files\php-5.2.12-nts
InstanceMaxRequests=5
ActivityTimeout=1200
RequestTimeout=1800
MaxInstances=100

我定義了兩種不同的 PHP 配置(PHP-Production 和 PHP-TEST),並且我已將預設配置設置為 PHP-Production。我已指定 IIS 站點編號 633747741 改為使用配置 PHP-TEST。

引用自:https://serverfault.com/questions/107783