Nov 22 2008

如何在Server 2008的IIS7安裝PHP

分類:Servers , 有 5,668 次瀏覽過 , 有 1,477 個機器人爬過


我很喜歡一些用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 模式,比較沒有奇怪的靈異現象。

閱讀相關文章:

 ▲閱讀較新的文章»» 揪甘心的Tech.Ed 2008課程光碟
 ▼閱讀較舊的文章»» ASUS GX1008B 不專業開箱文


加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl 加入此網頁到:YouPush 加入此網頁到:你推我報

目前有 11 個回應 , 標籤:



有 11 個回應 在「如何在Server 2008的IIS7安裝PHP」的文章

  1. tommy在 2009年 02月 10日 17:06:47 說

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

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

  2. tommy在 2009年 02月 10日 17:16:28 說

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

  3. AskaSu在 2009年 02月 10日 22:06:33 說

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

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

  4. AskaSu在 2009年 02月 14日 19:21:47 說

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

  5. tommy在 2009年 03月 05日 18:15:24 說

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

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

  6. AskaSu在 2009年 03月 09日 11:06:02 說

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

  7. tommy在 2009年 03月 11日 22:18:26 說

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

  8. Edward在 2010年 01月 14日 10:39:51 說

    您好,

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

    謝!

  9. AskaSu在 2010年 01月 14日 15:46:07 說

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

  10. Edward在 2010年 01月 18日 22:41:55 說

    您好,

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

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

    謝!

  11. AskaSu在 2010年 01月 23日 10:18:36 說

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

留 言 回 應

(若看不到驗證碼,請重新整理網頁。)