資訊無涯,回頭已不見岸

如何在Server 2008的IIS7安裝PHP

文章更新:快速在 Windows Server 2008 R2 的 IIS 7.5 安裝設定 PHP

我很喜歡一些用PHP 所開發出來的系統,比如WordPressGalleryXoops 等。只是,很多網路上的資源都會以安裝Apache 網頁伺服器搭配PHP做示範。說實話,我不是嫌Apache 不好,只是一想到還要花時間研究另一套網頁伺服器就軟一半了。既然我都拿Windows Server 當伺服器,當然還是用IIS 最快啦!

至於安裝PHP 在IIS7 的方式,我個人覺得比起IIS6 簡單許多,只是有幾個地方要注意而已。
1) 到PHP 官網下載PHP
我個人習慣全手動設定,所以下載壓縮版做範例。

2) 下載後,將裡面的檔案解開到「C:PHP」。
再把「php.ini-dist」或「php.ini-recommended」複製到「C:Windows」目錄裡面,並改名為「php.ini」。
注意!「php.ini」裡的設定,請務必配合你的環境及需求做修改。

3) 安裝IIS7。開啟伺服器管理員,點選「新增角色」。

勾選「網頁伺服器(IIS)」。

IIS7 預設只會安裝下列模組。由於要啟用PHP 的緣故,務必要額外勾選「ISAPI 擴充功能」。

點選下一步後,會列出選擇的安裝項目,可以檢查是否有勾選錯誤。

最後,安裝結果也會列出清單。說真的,Server 2008 在新增移除角色的介面做得很不錯,不會再發生過去Server 2003 或Server 2000,手殘點錯造成移除掉正常功能。

4) 重頭戲上場,準備設定PHP。安裝完成後,到「開始」->「系統管理工具」->「Internet Information Services (IIS) 管理員」。開啟後,點選伺服器尋找「處理常式對應」。

進入後,到動作窗格點選「新增指令碼對應」

參考下圖,輸入相關設定再按「確定」。名稱的部分可以自訂,只是我一直覺得第一行欄位的翻譯很奇怪,輸入的東西跟路徑一點關係都沒有,怎麼會名為「要求路徑」,但是翻遍微軟的簡中跟日文版詞彙網站都是這樣翻;原來,英文就已經稱為「Request path」... @.@?

 之後會出現確認視窗,想用PHP 當然要點「是」啦!

完成後,確認狀態是否為「已啟用」。

5) 其實上面的步驟就已經算是完成PHP 的啟用。但是,大部分用PHP 開發的系統,預設起始網頁為「index.php」,所以必須再加以設定。請回到IIS伺服器的頁面,選擇「預設文件」。

在右方的動作窗格,點選「新增」

輸入「index.php」點「確定」。這樣就大功告成啦!

6) 如果想要測試,PHP 有提供一個語法,讓我們簡單進行確認。
到「C:inetpubwwwroot」(IIS預設站台的起始目錄),新增一個「index.php」或「test.php」的檔案。用記事本或其他軟體,編輯輸入「<?php  phpInfo();  ?>」。(或者,也能從我的網站下載該檔案

參考下圖的方式做測試,成功的話就會出現如第一張圖片的畫面。

以上的設定,是採用「ISAPI」模式來啟用PHP。不過,微軟有另外提供一個FastCGI 搭配PHP 的「php-cgi.exe」做啟用動作,有興趣的人可以參考微軟揪甘心的IIS官方網站 提供的教學 - Using FastCGI to Host PHP Applications on IIS 7.0

只是,根據我自己的測試,雖然Wordpress 能正常使用,但是在Gallery 相簿系統卻會造成奇怪的錯誤。關於這個狀況,我以前在Server 2003下使用CGI 模式啟用PHP 也會同樣發生,所以個人還是偏好用ISAPI 模式,比較沒有奇怪的靈異現象。

11 則留言

  1. tommy

    想請問老蘇~如果設定與安裝都正確
    卻出現404 的錯誤~

    請問有可能是哪邊一邊的問題

  2. tommy

    對了 是因為X64版本的關係嗎?

    • AskaSu

      在x64版本下,IIS7也能使用PHP,
      但是要記得將應用程式集區裡的所屬程式,
      強迫啟用為32位元模式,
      其餘設定都跟32位元沒有什麼不一樣。

      另外,如果要跑PHP 加其他相關應用,就不建議在x64 版本下使用了,因為:
      1. 我曾在x64 環境下架了Wordpress 作測試,但怎樣都連不上資料庫,猜測是ODBC 或PHP MySQL Extensions 的問題。
      2. 目前PHP 官方也沒釋出正式的64位元版本,其他非官方的也有上面這個問題。

  3. AskaSu

    今天仔細再研究了一下,
    猜想你用的PHP是Fusion-X LAN 開發的64位元版本,
    這個版本在設定上必須很注意裡面的說明文件,
    而且我花了很久時間仍然無法跟MySQL結合使用。

  4. tommy

    剛剛才看到蘇老大的回答
    不好意思 慢回了一下
    我是依照這方是安裝的
    是非官方版本的php x64
    http://blog.raienet.com/330

    果真是x64的關係,我是用server 2008 x64版本~
    mysql也安裝了
    目前卡在phpMyAdmin 連結錯誤
    不知道哪個環節的問題

  5. AskaSu

    是MySQL無法連結的錯誤嗎?
    如果是的話,那個我找過很多方法做測試,
    除非回到32位元的環境下,
    否則我怎樣也沒辦法讓MySQL在64位元下使用。 :(

  6. tommy

    = =果真沒錯~我換回32bit...一切正常
    感謝askasu了

  7. Edward

    您好,

    請問如 64Bit IIS + 64Bit php + 64Bit MySQL 可以成功嗎 ?

    謝!

  8. AskaSu

    不好意思,
    64bit的MySQL我目前還沒有測試過。 /:)/

  9. Edward

    您好,

    小弟今天賞試用 php 連去 MSSQL :
    php.ini:
    extension = php_mssql.dll ( 確定 php/ext 有該檔案 )

    restart iisreset and restart server...
    但 phpinfo 仍沒有mssql 資料 ?
    不知可以幫忙一下呢 ?

    謝!

    • AskaSu

      檢查看看php.ini裡面,
      關於「extension_dir」是否有指定到正確位置。

發佈回覆給「tommy」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

© 2024 蘇老碎碎唸

Theme by Anders NorenUp ↑