在Windows Server 2008 x64 IIS7上使用PHP

最近因為工作需要
開始真正的研究跟使用Windows Server 2008
目前我自己的測試環境是Windows Server 2008 SP2 32位元版
公司使用的則是64位元版本

在使用IIS7的時候有許多設定上的變更
也導致了從IIS6搬移站台到IIS7的時候
遇到許多問題
尤其是32位元 DLL的問題
不過本篇目前要記錄的是我在IIS7上安裝PHP的過程

所以32位元DLL的問題就先留著等其他篇幅再做說明

首先這裡使用的還是ISAPI的方式去掛載PHP
雖然之前有找到文件關於FastCGI的安裝文件
但是在64位元上機器測試的時候
一直發生FastCGI載入失敗的錯誤

因為我最後是用ISPAI才解決
並且在32位元跟64位元上的環境上都測試過
除了phpinfo()可以顯示資訊以外
也安裝了WordPress這套CMS做測試
總算也順利的執行成功

所以在安裝PHP的時候
建議使用5.2版本的套件
我是使用「php-5.2.17-Win32-VC6-x86.zip」這個zip套件
而不是Installer版本
並且是從http://windows.php.net/download/這裡所下載的Windows版本
這點要注意

因為PHP的Windows版本從5.3開始就沒有了ISAPI組件
所以我一直沒辦法利用其他方式在64位元上執行

現在大概用文件說明一下安裝方式:

【步驟1】
下載php-5.2.17-Win32-VC6-x86.zip套件到電腦


【步驟2】
解壓縮到要安裝的位置,例如C:\PHP,在這裡我使用的測試機路徑是D:\_Service\PHP


【步驟3】
複製php.ini-dist這個文件出來,更改名稱為php.ini


【步驟4】
編輯php.ini,有幾個要修改的地方

將
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
更改為
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
include_path = ".;D:\_Service\PHP"
將
;extension_dir = "./"
更改為
;extension_dir = "./"
extension_dir = "D:\_Service\PHP\ext"
搜索
;extension=php_
此開頭的文字

替代為
extension=php_

開啟所有可用的組件


【步驟5】
將php.ini檔案丟到C:\Windows裡面


【步驟6】
開啟IIS管理員(Internet Information Services (IIS) 管理員)


【步驟7】
點選「連線到localhost」


【步驟8】
點兩下左鍵開啟其中的功能「處理常式對應」


【步驟9】
選擇「新增程式碼對應」

要求路徑輸入:*.php
執行檔路徑:D:\_Service\PHP\php5isapi.dll
名稱:PHP
新增完畢之後會詢問是否允許此ISAPI擴充程式,請選擇是


【步驟10】
接下來點選「應用程式集區」
點選「DefaultAppPool」這個應用程式集,然後選擇「進階設定」

在進階設定中會看到一個項目「啟用32位元應用程式」,預設為False
請將這個更改為True

然後重新啟動伺服器


【步驟11】
接下來在預設的網站目錄中「Default Web Site」,我們可以新增一個檔案來測試
新增一個文字檔案取名為phpinfo.php
內容輸入
[php]

[/php]


【步驟12】
在瀏覽器開啟
http://localhost/phpinfo.php
沒有問題的話就可以看到PHP的INFO資訊


【步驟13】
接下來測試WordPress套件的時候
在執行WordPress的時候
會出現錯誤訊息顯示環境缺少MYSQL組件
這時候從D:\_Service\PHP裡面
將libmysql.dll複製到以下位置

32位元的系統:複製到C:\Windows\System32
64位元的系統:複製到C:\Windows\SysWOW64

然後重新啟動伺服器即可

因為在Windows Server 2008 64位元環境中
System32這裡只會處理64位元的組件(那為什麼還叫做System32????)
如果要執行32位元組件的話,必須將DLL丟到SysWOW64才會執行

有興趣了解進一部資訊的話可以參考此文章
如何將32位元的DLL安裝到64位元的Windows中 (WoW64)

基本上到此就已經成功將PHP掛載在IIS7上了


另外提供一些我參考的文章
1.IIS7+PHP 設定如下
2.Install and Configure PHP Install the Microsoft Web Platform for PHP Running PHP Applications on IIS The Official Microsoft IIS Site
3.Your PHP installation appears to be missing the MySQL extension which is required by WordPress
4.Windows Server 2008(x64), IIS7,PHP5.2.6,MySQL5.1, & Fun
5.How to install PHP ISAPI on Windows 2008 IIS7 x64
6.How to Install PHP 5.3 FastCGI on Windows 2008 IIS 7
8.《PHP 學習筆記》IIS7 跑 PHP

再次體認到英文不好的痛苦
找中文的文件找不太到
最後還是從一堆國外的討論中一樣一樣把答案給測試出來

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>