6 月 27 日,微軟發(fā)布了 Virtual Machine Additions for Vista Beta 2,我將其安裝在 Virutal Server 2005 R2 SP1 Beta 1 上之后,終于可以玩 IIS 7 了。在安裝這個(gè)版本的 VM Additions 之前,我的 Longhorn Server Beta 2 虛擬機(jī)一直用的是 for Windows 2003 的 VM Additions,那個(gè)速度別提有多慢了。裝了這個(gè)版本以后,在給 Longhorn Server Beta 2 虛擬機(jī)分了 480M 內(nèi)存的情況下,速度飛快,感覺(jué)棒極了!于是終于開(kāi)始了 IIS 7 之旅。
作為一個(gè) PHP 玩家,在有 IIS 7 可用之后,第一個(gè)想法自然是給 PHP 在 IIS 7 上安一個(gè)家。下面就是我的全部安裝過(guò)程圖解。
首先,安裝 IIS 7,這個(gè)就不用說(shuō)了吧。為了體驗(yàn) IIS 7 的全部功能,我把它全部特性都安裝了,但在本文中我還不打算介紹這些,不然就扯得太遠(yuǎn)了。安裝好之后,PHP 5 for Windows 的 Binary zip 包。將其解壓縮到 C:\PHP 目錄下,然后復(fù)制一份 php.ini-dist 改名為 php.ini。接下來(lái)打開(kāi)我的電腦->屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量里,添加上可執(zhí)行文件的查找路徑(PATH)和 php.ini 的查找路徑(PHPRC):

接下來(lái)開(kāi)始配置 IIS 7,下面是 IIS 7 的啟動(dòng)后的開(kāi)始畫(huà)面,看上去比較酷:

你可以對(duì)某個(gè)站點(diǎn)進(jìn)行配置,也可以對(duì)整個(gè)服務(wù)器進(jìn)行配置,當(dāng)然對(duì)整個(gè)服務(wù)器配置對(duì)于以后的事情可能就更加方便了,比如新建一個(gè)站點(diǎn),就可以支持 PHP,這對(duì)于作虛擬主機(jī)是非常合適的,所以這里我們是按照對(duì)整個(gè)服務(wù)器進(jìn)行配置來(lái)作的。因此先選中要配置的服務(wù)器,默認(rèn)當(dāng)然是你的本地服務(wù)器了,你會(huì)看到選中以后,右面的畫(huà)面跟 IIS 6 完全不同了:

從這整個(gè)屬性頁(yè)中選擇你要找的特性當(dāng)然比較費(fèi)眼,所以,你可以按照范圍(Areas)和分類(Categories)來(lái)選擇。這里我們要配置的是 ISAPI and CGI Restrictions,它可以從 IIS 范圍的 Security 分類中找到:

在全部安裝的情況下,ISAPI and CGI Restrictions 頁(yè)中默認(rèn)有 ASP 和 ASP.NET 兩項(xiàng):

我們?cè)谧钣颐娴娜蝿?wù)(Tasks)里選擇 New Restriction… 來(lái)為 PHP 創(chuàng)建 Restriction,要填寫(xiě)的內(nèi)容如圖所示:

接下來(lái)我們可以為 PHP 程序創(chuàng)建一個(gè)應(yīng)用程序池:

在然后配置默認(rèn)文檔,增加一個(gè) index.php 的默認(rèn)文檔:


接下來(lái),配置 IIS 范圍里 Server Components 分類中的 Handler Mappings 選項(xiàng):

這一步是最重要的,在這里,我們要添加的是 Script Map,要填寫(xiě)的內(nèi)容如圖所示:

配置完這一步后,PHP 就可以運(yùn)行了。不需要配置 ISAPI Filters,也不要重啟 IIS 服務(wù)器,你可以直接在 C:\inetpub\wwwroot 目錄下創(chuàng)建一個(gè) index.php,內(nèi)容就是執(zhí)行一個(gè) phpinfo() 函數(shù),然后再瀏覽器中輸入 http://localhost,如果看到下圖,就說(shuō)明配置成功了:

安裝好了 PHP,接下來(lái)就是給它在裝個(gè)加速器了,我一般使用的是 Zend Optimizer,因?yàn)檫@個(gè)最好配置。你可以從這里下載它:ZendOptimizer-3.0.1-Windows-i386.exe。
安裝過(guò)程中,我們會(huì)發(fā)現(xiàn) Zend Optimizer 居然能識(shí)別出 IIS 7 來(lái),真是厲害:

安裝好后,刷新那個(gè)頁(yè)面,在頁(yè)面底部的某個(gè)位置,你就會(huì)發(fā)現(xiàn) Zend Optimizer 已經(jīng)啟動(dòng)了:

再接下來(lái),我們應(yīng)該配置一下保存 Session 的目錄,不然的話,Session 可能無(wú)法正常工作。
首先,為 Session 文件建一個(gè)文件夾,這里我們以 C:\PHP\sessions 目錄為例,建立好之后,給其分配權(quán)限,這里需要給 IIS_IUSRS 用戶組以完全控制權(quán)限,IIS_IUSRS 用戶組應(yīng)該是 IIS 7 中新加的用戶組,在之前的版本中,我似乎未見(jiàn)到過(guò):

然后,把這個(gè)路徑,添加到 php.ini 中,注意去掉 session.save_path 前面的分號(hào):

再次刷新 http://localhost 這個(gè)頁(yè)面,如果看到 session.save_path 的項(xiàng)是你所配置的目錄,這八成就成功了:

為了進(jìn)一步確認(rèn) Session 可用了,你可以直接裝一個(gè)帶有 Session 的程序試試,我這里選擇的是 PHPRPC,執(zhí)行之后,我們可以看到 C:\PHP\sessions 目錄下有 session 文件了。

好了,到這一步,就算是大功告成了,至于其它的擴(kuò)展,自己在 php.ini 中啟用就可以了!就是這么簡(jiǎn)單。不過(guò)修改 php.ini 似乎還是需要重啟 IIS 服務(wù)器才能使修改生效。