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