Iis

IIS 上的 PHP 安裝:ISAPI 還是 CGI?

  • March 5, 2013

我在 Windows Server 2k3 上執行 IIS6,目前已將 PHP 作為 ISAPI 模組安裝。我們即將將我們的環境升級到 PHP 5.3.0,這讓我想知道我是否應該堅持使用 ISAPI 模組,或者是否有理由更適合 CGI。

我們的組織有一台網路伺服器,不必擔心與共享主機相關的安全性;我們有幾個網站,但它們都屬於我們。

使用一種方法比另一種方法有優勢嗎?一個更安全嗎?這只是一個偏好問題嗎?

編輯:PHP 5.3.0 放棄了對 ISAPI 的支持,因此您需要通過 FastCGI 安裝它。來自PHP 遷移指南

已放棄對 ISAPI 模組的支持。請改用改進的 FastCGI SAPI 模組。

Windows的非執行緒安全PHP CGI 二進製文件應該為您提供最大的穩定性、兼容性和性能:

  1. PHP 最初是為多程序環境設計和優化的
  2. 大多數擴展都是在牢記這一點的情況下創建的
  3. 在多執行緒環境中沒有您看到的“等待”

但是,當 CGI 二進製文件用於 IIS 等多執行緒環境時,性能和穩定性會受到影響。因此,大多數人已經開始使用可用於 IIS 5.1/IIS 6.0 的相對較新的FastCGI擴展作為下載並與 IIS7 捆綁在一起。

本指南介紹瞭如何使用 Microsoft 的 FastCGI 擴展安裝和配置 PHP CGI。

第二種選擇是使用 PHP ISAPI,但請確保 (i) 使用執行緒安全建構 (ii) 使用穩定且經過測試的擴展——否則 PHP ISAPI 可能會崩潰並導致 IIS 崩潰。附帶說明一下,PHP 中的踩踏安全就像手剎,始終處於接合狀態。甚至有人說這是一個神話。

更新:不再提供 PHP ISAPI,因此關於 ISAPI 與 CGI 的問題不再是問題。推薦使用 FastCGI。

  1. FastCGI 支持內置在現代版本的 IIS 中,您只需啟用它。
  2. PHP 安裝程序提供了使用 FastCGI 安裝 PHP 的選項。
  3. 對於想要執行 ZIP 安裝的人,可以使用“PHP Manager for IIS”來配置 IIS 的 PHP 安裝。

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