IIS 7.x FastCGI 運行 PHP的配置方法

來源:互聯網
上載者:User

所以早在 IIS 7.0 剛剛出現沒多久,微軟就已經提供了在 IIS 上運行 PHP 的一種更最佳化的方式—— FastCGI。但是直到 IIS 7.5 隨著 Windows 7 出現,網上還有很多的“大蝦”在教菜鳥們如何在 IIS 7.x 下用配置ISAPI支援的方式(甚至是PHP手冊上不推薦的拷貝檔案到系統目錄的方式)來支援 PHP。本文介紹一下在 IIS7.x 中啟用 FastCGI,以及配置 PHP 的方法。

我的配置環境是 Windows 7 x64 + IIS 7.5,但是本文的內容在Windows 7.x 版本中應該是完全通用的,因為 FastCGI 正是從 IIS 7.0 開始成為內建群組件的。至於之前的版本,需要額外安裝 FastCGI 支援,配置上也略有不同。

Part I. 啟用 IIS 7.x 中的 FastCGI 支援

依次開啟 控制台 | 程式和組件 | 開啟或關閉Windows功能,英文版對應操作為 Control Panel | Programs and Features | Turn Windows Features On or Off. 然後按所示啟用 FastCGI (勾選 CGI 將同時啟用 CGI 和 FastCGI 支援)。其它項你應該根據自己的需要選擇,我這裡是為了反白才去掉了其他項目的勾選。

如果是 IIS7.0,微軟已經發布了一系列升級補丁來修正其中內建的 FastCGI 模組已知的部分問題,你可以根據自己的系統下載對應的補丁進行升級:

  • Update for Windows Server 2008
  • Update for Windows Server 2008 x64 Edition
  • Update for Windows Server 2008 for Itanium-based Systems
  • Update for Windows Vista SP1
  • Update for Windows Vista SP1 for x64 based Systems
    Part II. 安裝和配置PHP

    微軟官方文章裡建議使用非安全線程版本的PHP(non-thread safe build of php),但是由於該版本下的Zend Optimizer的啟用會比較複雜,而大部分商業PHP程式都是離不開Zend Optimizer的,所以建議仍然採用安全線程版本的PHP。請從 PHP官方網站 下載最新版本的 PHP Zip格式壓縮包,本文寫作時使用的是 PHP 5.2.9-2 版,:PHP 5.2.9-2 zip package 。

    下載以後,將其解壓縮到任意目錄(本文中使用 D:\server\php,後面所有涉及到此路徑的地方均表示為 [PHP Install Dir]),然後將目錄中的 php.ini-recommend 改名為 php.ini 。用任意的文字編輯器開啟這個檔案,尋找並確認以下設定:

    • fastcgi.impersonate = 1
    • cgi.fix_pathinfo=1
    • cgi.force_redirect = 0
    • open_basedir 指向包含 php 程式的網站路徑。 【可選項】
    • extension_dir = "./ext" ;注意:以往版本中這裡往往要使用絕對路徑,但是現在可以用這樣的方式進行通用配置。
    • 刪除你需要啟用的php擴充附加元件前面的分號,例如:
      extension=php_mssql.dll
      extension=php_mysql.dll
      注意:不是所有的項目都可以啟用的,最好只啟用你用到的,如果啟用某一項之後運行不了,請重新注釋掉該項並重啟IIS。

    設定完畢以後,可以啟動一個命令提示行視窗(cmd.exe),運行 [PHP Install Dir]/php –info 檢查一下 php 是否可以正確運行,如果正確,會輸出一系列的環境變數提示等。

    Part III. 配置 IIS 處理 PHP 請求

    開啟 IIS 管理器,左邊選擇你的電腦,中間視窗點擊“Handler Mapping”(中文版的朋友對照一標了,我不太確定在中文版作業系統中這個項目會翻譯成什麼),然後在右邊點擊“Add Module Mapping…”(添加模組映射)。

    在彈出的 Add Module Mapping 對話方塊中,按照填寫(Executable(optional)一項請填寫你自己的安裝路徑,即 [PHP Install Dir]/php-cgi.exe ):

    填寫好之後,點 OK,會彈出一個確認對話方塊,問你是不是真的要添加這個模組映射。點 Yes 繼續。

    到此就完成了 PHP 在 IIS 7.x 下的安裝,在你的網站目錄下建立一個文字檔,檔案名稱尾碼為.php,比如test.php,該檔案的內容只有一行:

    <?php phpinfo(); ?>

    然後用瀏覽器瀏覽這個檔案(通常是http://localhost/test.php),正常情況下,就會看到PHP的預設資訊頁面了。

    根據不同的配置,看到的資訊可能有所不同,我這裡的抓圖已經安裝了 Zend Optimizer v3.3.3,預設當然是沒有的,你可以自己下載並安裝,Zend Optimizer 的安裝和以前所有版本的一樣,就算沒有教程,跟著安裝嚮導一步一步選擇也能成功安裝。我這裡就不贅述了。此外還有 MySQL、PhpMyAdmin 等的安裝,也都是一樣的。雖然相關,但都和 IIS 版本無關。就不講了。

    以前配置過PHP4,或者在 IIS 6.0 以前版本中以 ISAPI 方式配置過的朋友應該能發現,使用 FastCGI 方式在 IIS 7.x 中配置 PHP,已經大大簡化,不用像 PHP 4那樣向系統檔案夾拷貝檔案,不用像 IIS 6.0 以前版本那樣修改環境變數,而且也不像 ISAPI 方式那樣要設定 extension_dir 的絕對路徑……

    總而言之,PHP 在 Windows 下已經不像以前一樣僅僅是不得以而為之的一個東西,它的安全性、穩定性、運行效率已經大大提高。除了 Linux + Apache + PHP + MySQL,我們現在也可以很方便地使用 Windows + IIS + PHP + MSSQL 了。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.