使IIS支持PHP,ISAPI或CGI,FastCGI完全配置教程(最新php5.2.13配置方法),我是比較完整的一個版本,對可能出現的問題給出了具體的解決方法.
在Windows Server 2003的IIS6下配置ISAPI方式的PHP,配置方法是,在IIS的“WEB服務擴展”中,添加一個新的WEB服務擴展,程序后綴為PHP,ISAPI程序為php5isapi.dll,然后再我的電腦->屬性->高級->“環境變量”-“系統變量”中增加變量名PHPRC,數值為php.ini的路徑,在Internet信息服務管理器中,選擇網站或應用程序的根目錄,打開目錄屬性頁(右鍵選擇“屬性”),再選擇“主目錄”。點擊“配置”按鈕,選擇“映射”Tab頁。點擊“添加...”,在“可執行文件”設為: c:/php/php5isapi.dll,擴展名設為.php,選擇“確認文件是否存在”,然后“確定”保存設置。重啟服務器即可完成PHP的配置。
以上紅色部分不用做,因為用ISAPI配PHP,不讀系統變量(CGI方式才讀),相關權限設置如下:
<網頁所在文件夾配置“IUSR_***”的讀權限,如果要寫的就給修改權限
PHP文件所在文件夾配置“NETWORK SERVICE”和“IUSR_***”的讀權限。
php.ini文件給“NETWORK SERVICE”讀權限
考到SYSTEM32目錄的DLL文件要給“IUSR_**”的讀取和運行權限
解壓縮 PHP 二進制壓縮包到 D:/php 目錄下
然后打開“我的電腦”->“屬性”->“高級”->“環境變量”->“系統變量”->“path”,編輯其值,在前面增加下面的路徑地
址:
;D:/php;D:/php/ext(注意前面的分號)
將 php.ini-dist 或 php.ini-recommended 復制到 C:/Windows 目錄下,并改名為 php.ini
一般正式發布網站的服務器用php.ini-recommended 安全性高
而作為調試用的服務器用php.ini-dist 更好
當然一般情況下,這個 php.ini 還是需要根據實際情況來修改的。
下面來介紹一下幾個必要的修改選項:
復制libmysql.dll到System32目錄
extension_dir = "D:/php/ext"
這個是 PHP 擴展所放置的目錄,請確保跟你實際安裝的目錄相同。
設置正確的時區:
找到“date.timezone”設置成:date.timezone = PRC
以下操作選擇性的打開或關閉PHP擴展
extension=php_mssql.dll
extension=php_mysql.dll
上面這些,開頭沒有加分號的是打開的擴展,加了分號的是沒有打開的擴展。
session.save_path = c:/sessions
這個是 session 文件默認保存的目錄,這個目錄必須是一個存在的目錄,不然默認的 session 功能會無效。我這里設置的是一個 ramdisk 上的一個目錄。將 session.save_path 設置在 ramdisk 上可以加快 session 處理的速度。如果你沒有安裝 ramdisk,你可以把它指定到其他盤的任何一個目錄下,如 C:/sessions 目錄、C:/Windows/Temp 目錄等。
OK,基本工作作完了,現在該配置 IIS 了。
打開“ Internet 信息服務(IIS)管理器”,在“ Web 服務擴展”里,選擇“添加一個新的 Web 服務擴展”,擴展名可填寫
“PHP ISAPI 擴展”,要求的文件選擇:D:/php/php5isapi.dll(如果安裝的是 PHP4,則此處是 C:/php/sapi/php4isapi.dll
,下同),并設置擴展狀態為允許。
打開“網站”->“屬性”->“ISAPI 篩選器”->“添加”,篩選器名稱可填寫“PHP”,可執行文件仍然選擇
D:/php/php5isapi.dll。
打開“網站”->“屬性”->“主目錄”->“應用程序設置”->“配置”->“應用程序擴展”->“添加”,可執行文件還是選擇
在用IIS整合php時,有兩種方式:ISAPI與CGI模式,這兩種方式,我們都可以看到phpinfo頁面,但是使用ISAPI模式,無法讀取環境變量,所以通過環境變量PHPRC設置的php.ini路徑無法找到。使用CGI就可以,這樣就不必把好多文件拷到系統文件下。
配置文件(PHP 3中是php3.ini,自PHP 4起是php.ini)在PHP啟動時被讀取。對于服務器模塊版本的PHP,僅在
web服務器啟動時讀取一次。對于CGI和CLI版本,每次調用都會讀取。
php.ini的搜索路徑如下(按順序):
* SAPI模塊所指定的位置(Apache2中的PHPIniDir指令,CGI和CLI中的-c命令行選項,NSAPI
中的php_ini參數,THTTPD中的PHP_INI_PATH環境變量)
*HKEY_LOCAL_MACHINE/SOFTWARE/PHP/IniFilePath(Windows注冊表位置)
*PHPRC環境變量
*當前工作目錄(對于CLI)
*web服務器目錄(對于SAPI模塊)或PHP所在目錄(Windows下其它情況)
*Windows目錄(C:/windows或C:/winnt),或--with-config-file-path編譯時選項指定的位置
我在Server2003+php4的環境下遇見了這個問題,解決的方法是在前面寫PATH環境變量的時候,添加一個PHPRC,指向x:/php4/php.ini,重新啟動即可,如果實在還是不行的,最后還有一招就是安裝zend,php加速器,因為安裝zend的時候,會指定php.ini的路徑,也會指定所使用的服務器是IIS還是Apache,起本質是對注冊表做了修改,但是我不知道修改了哪個位置,所以我在上面的操作還是無效的情況下,最后安裝Zend,終于成功解決問題了。
新聞熱點
疑難解答
圖片精選