在windows server 2003的iis6下配置isapi方式的php教程,配置方法是,在iis的“web服務擴充”中,添加一個新的web服務擴充,程式尾碼為php,isapi程式為php5isapi.dll,然後再我的電腦->屬性->進階->“環境變數”-“系統變數”中增加變數名phprc,數值為php.ini的路徑,在internet資訊服務管理器中,選擇網站或應用程式的根目錄,開啟目錄屬性頁面(右鍵選擇“屬性”),再選擇“主目錄”。點擊“配置”按鈕,選擇“映射”tab頁。點擊“添加...”,在“可執行檔”設為: c:phpphp5isapi.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:phpext(注意前面的分號)
在用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_machinesoftwarephpinifilepath(windows註冊表位置)
*phprc環境變數
*當前工作目錄(對於cli)
*web伺服器目錄(對於sapi模組)或php所在目錄(windows下其它情況)
*windows目錄(c:windows或c:winnt),或--with-config-file-path編譯時間選項指定的位置
我在server2003+php4的環境下遇見了這個問題,解決的方法是在前面寫path環境變數的時候,添加一個phprc,指向x:php4php.ini,重新啟動即可,如果實在還是不行的,最後還有一招就是安裝zend,php加速器,因為安裝zend的時候,會指定php.ini的路徑,也會指定所使用的伺服器是iis還是apache,起本質是對註冊表做了修改,但是我不知道修改了哪個位置,所以我在上面的操作還是無效的情況下,最後安裝zend,終於成功解決問題了。