本文于2011年3月重新修正,該方法僅適用于PHP?xml:namespace prefix = st1 />
這篇文章可以說(shuō)是眾多的 IIS下配置php最實(shí)用最精簡(jiǎn)的一篇技術(shù)文章了,對(duì)于那些使用一鍵安裝php+mysql+iis和用installer版本安裝包的拖鞋可以忽略本文,并且對(duì)于網(wǎng)上最經(jīng)典的“Windows配置Apache+MySQL+Php+phpMyAdmin"等文章,我覺得對(duì)于剛學(xué)會(huì)用電腦的朋友很適合看,要配置服務(wù)器的朋友看著就會(huì)覺得太簡(jiǎn)單和長(zhǎng)篇了,本文用最精練的步驟進(jìn)行安裝。
以PHP為標(biāo)準(zhǔn)因?yàn)镻HP5 PHP4 有文件夾命名的差異,不過(guò)觸類旁通,請(qǐng)根據(jù)實(shí)際版本進(jìn)行變化(文章雖然說(shuō)的是PHP5.2.14,我實(shí)踐主要是PHP4,只是文件夾的名字或許有點(diǎn)出入。)
==================================================================================
1.下載php-win32壓縮包,解壓之后重新命名為php放至D:\php 。
2.進(jìn)去D:\php,找到php.ini-dist 和 php.ini-recommended 這兩個(gè)都是PHP的配置文件,php.ini-dist是默認(rèn)的配置文件, php.ini-recommended是推薦使用的配置文件,后者在PHP手冊(cè)中有講,是優(yōu)化了性能和安全的。這里我們相信群眾,把php.ini-recommended重新命名為php.ini。
3. 設(shè)置環(huán)境變量。為了以后升級(jí)方便,我們這里摒棄傳統(tǒng)的復(fù)制DLL和php.ini到C盤系統(tǒng)文件夾下的方法,用添加系統(tǒng)環(huán)境變量path:
在桌面“我的電腦”--右鍵--屬性---高級(jí)---環(huán)境變量,在最下面的列表中的path中添加php的路徑和dll等的路徑
d:\php;d:\phpextensions;d:\php\dlls(php5是沒有這個(gè)文件夾的,請(qǐng)靈活變化);接著新建一個(gè)環(huán)境變量,變量名為PHPRC,變量值為:D:\php\php.ini也就是php.ini配置文件所在的路徑。添加完后需要重啟服務(wù)器才能生效,你可以等下面的操作完成以后再重啟服務(wù)器。
4. 打開PHP.ini我們搜索extension,找到extension_dir = "./" ,把它修改為實(shí)際路徑extension_dir = "d:\php\ext" ,這個(gè)是PHP要調(diào)用的一些DLL(其中php4環(huán)境下則是d:\php\extensions\)。
5.打開php.ini,搜索doc_root,修改為你的web存放的路徑如d:\wwwroot或者留空;
6.在X盤新建一個(gè)文件夾tmp,設(shè)置iusr_用戶可讀寫權(quán)限,再在php.ini文件中,把session.save_path設(shè)置為X:\tmp,主要用于保存session會(huì)話臨時(shí)文件;
7.開啟extension模塊(這個(gè)可以參考下圖,詳細(xì)可以根據(jù)你的實(shí)際情況啟用),也就是功能模塊組件;如果有第三方模塊如iconv,則需要把相應(yīng)的dll文件拷貝到d:\php\ext文件夾里。
8.權(quán)限配置,默認(rèn)情況下users組用戶對(duì)D:\php有讀取權(quán)限的話是不需要再做其它設(shè)置的,但是有的管理員如果修改過(guò)默認(rèn)權(quán)限,如把D盤的users組權(quán)限給刪除了,這里就要進(jìn)行權(quán)限設(shè)置了。
D:\php目錄分配給IIS 專用用戶(通常為 IUSR_MACHINENAME)或者IIS_WPG組讀取的權(quán)限;
上面設(shè)置的tmp 目錄分配給IIS 匿名用戶(通常為 IUSR_MACHINENAME)可寫;
如果還安裝有zend的話,也需要對(duì)zend安裝目錄分配IUSR_MACHINENAME讀取權(quán)限;
webroot網(wǎng)站目錄分配IUSR_MACHINENAME讀取權(quán)限
webroot下的upload目錄分配IUSR_MACHINENAME讀寫權(quán)限。
C:\windows\temp目錄分配IUSR_MACHINENAME讀寫權(quán)限,這個(gè)主要是默認(rèn)情況下php使用"文本文件上傳"方法上傳文件的臨時(shí)存儲(chǔ)目錄,而另外一種"二進(jìn)制文件上傳"方法上傳文件的臨時(shí)存儲(chǔ)目錄是上面設(shè)置的x:\tmp。對(duì)于"文本文件上傳"方法的臨時(shí)目錄需要改變?yōu)槠渌夸浀脑?,需要在php.ini里設(shè)置upload_dir_tmp為你希望設(shè)置的具體路徑,再設(shè)置該目錄IUSR_MACHINENAME用戶的讀寫權(quán)限。這個(gè)目錄有的時(shí)候需要設(shè)置users可讀取權(quán)限。
9.IIS 設(shè)置
打開IIS服務(wù)管理器,右鍵網(wǎng)站屬性-->主目錄,執(zhí)行權(quán)限設(shè)置為"純腳本",配置->映射-->
添加D:\php\phpisapi.dll,擴(kuò)展名為.php ,動(dòng)作復(fù)制其它的POST,GET,HEAD,DEBUG。然后添加index.php默認(rèn)文檔。
打開IIS服務(wù)管理器,右鍵網(wǎng)站屬性-->ISAPI篩選器-->添加-->名稱為php,可執(zhí)行文件為D:\php\phpisapi.dll,最后確定。
10. 設(shè)置web服務(wù)擴(kuò)展:打開 IIS服務(wù)管理器,進(jìn)入 web 服務(wù)擴(kuò)展,點(diǎn)擊“添加一個(gè)新的 web 服務(wù)擴(kuò)展”,“擴(kuò)展名”中輸入名稱,例如 PHP,再點(diǎn)擊“添加”按鈕,點(diǎn)擊“瀏覽”選擇ISAPI 文件phpisapi.dll作為“文件路徑”后點(diǎn)“確定”,然后選中“設(shè)置擴(kuò)展?fàn)顟B(tài)為允許”并點(diǎn)“確定”(有的地方是設(shè)置“允許”“所有未知的ISAPI擴(kuò)展”,其實(shí)道理一樣)。
如果碰到 CPU 占用率達(dá)到 100%,則取消選中“緩存 ISAPI 應(yīng)用程序”(“主目錄”下點(diǎn)“配置”按鈕”)。
重新啟動(dòng)IIS,至此,PHP的安裝已經(jīng)完成,接下來(lái)是一些安全問題。
這時(shí)候最好寫張phpinfo()的頁(yè)面做為測(cè)試,察看一下當(dāng)前配置情況。
11.訪問需要輸入用戶名
一般提示輸入用戶名,密碼這些,可能是權(quán)限設(shè)置問題,PHP目錄添加IUSR_MACHINENAME 這個(gè)用戶.默認(rèn)權(quán)限就行了。
下圖為extensions一般設(shè)置圖:
=====================================================================================
tips1:關(guān)于時(shí)區(qū)設(shè)定的說(shuō)明:
從php5.1.0開始,php.ini里加入了date.timezone這個(gè)選項(xiàng),默認(rèn)情況下是關(guān)閉的,也就是顯示的時(shí)間(無(wú)論用什么php命令)都是格林威治標(biāo)準(zhǔn)時(shí)間,和我們的時(shí)間(北京時(shí)間)差了正好8個(gè)小時(shí),如果你對(duì)這個(gè)比較在意,那就修改php.ini的配置。
打開php.ini把date.timezone前面的分號(hào)去掉,在=后面加XXX,重啟http服務(wù)(如apache2或iis等)即可。
關(guān)于XXX,大陸內(nèi)地可用的值是:Asia/Chongqing、Asia/Shanghai、Asia/Urumqi(依次為重慶,上海,烏魯木齊),港臺(tái)地區(qū)可用:Asia/Macao、Asia/Hong_Kong、Asia/Taipei(依次為澳門,香港,臺(tái)北),還有新加坡:Asia /Singapore,以上沒有北京,不過(guò)接著往下看,其他可用的值是:Etc/GMT-8,Singapore ,Hongkong,PRC(中華人民共和國(guó))。