windows下配置IIS6+PHP5.3和apache2.2.11+PHP5.3
首先要知道的是,那個服務器平台對應PHP那個版本:
1。在windows下使用Apache+PHP的,請選擇VC6版本;
2。在windows下使用IIS+PHP的,請選擇VC9版本;
PHP5.3是不能在IIS6上面通過ISAPI擴展運行的,而且在PHP5.3文件里面也沒有php5isapi.dll,取而代之的是php5nsapi.dll,換句話說PHP5.3以后的版本就不再用ISAPI進行擴展在IIS里運行了,那有沒有什么辦法讓PHP5.3在IIS里運行的呢,當然有了,那就是FastCGI。據說它的效率很高的喲。(昨天晚上在IIS里配置PHP5.3,結果老不成功,雖然在windows 2003下配置過apache2.2.11+PHP5.3順利的成功了,但沒想到PHP5.3不支持ISAPI了,還被同學鄙視。暈,寫下此文,留作記號)
第一部分:IIS6+PHP5.3
1.下載 FastCGI For IIS6下載地址http://www.iis.net/1521/ItemPermalink.ashx
同時在 IIS 的 “Web 服務擴展”里多了 FastCGI Handler。
2.下載 PHP5.3 R3 安裝版 下載地址http://windows.php.net/download/,(注意IIS下要選擇VC9的版本)解壓到所需目錄,該目錄需要給予user讀取運行權限,
3. 注冊 PHP 到 FastCGI【如果是選擇5.3 R3安裝版則可以省略此步驟,因為它自動添加了配置】
打開 C:/WINDOWS/system32/inetsrv/fcgiext.ini 文件。
; This is the configuration file for the FastCGI handler for IIS 6.0.
; The FastCGI handler will look for this file in the same directory as
; fcgiext.dll. By default, the FastCGI installer will place this file into
; the %windir%/system32/inetsrv directory.
我個人的理解是,只要“Web 服務擴展”里的 FastCGI Handler 為允許時,在加載 fcgiext.dll 時,會讀取 fcgiext.ini 配置文件的內容,根據里面的配置為每個網站提供映射。
在 [Types] 下添加以下配置:
[Types]
php=PHP
[PHP]
ExePath=D:/PHP/php-cgi.exe
“php”表示擴展名,“PHP”是配置節名稱,以“[PHP]”定義。
4. 配置 php.ini
將 D:/PHP/php.ini-production 復制一個,然后重命名為 D:/PHP/php.ini
打開 D:/PHP/php.ini,
修改PHP.ini文件:
1。第531行改為:display_errors = On
2。第542行改為:display_startup_errors = On
3。第624行改為:error_prepend_string = ""
4。第630行改為:error_append_string = "
"
5。第813行改為:extension_dir = "D:/php/php_setup_files/php-5.3-vc9/ext/"
6。第854行改為:fastcgi.impersonate = 1
7。從948行到988行根據自己的需要修改
8。第997行改為:date.timezone = asia/Shanghai
其它的根據實際需要對 php.ini 進行設置修改,這里只針對能跑 php,修改完記得重啟 IIS。
5. 配置網站【此步驟也可以省略,因為安裝版自動添加了!】
右鍵網站 => 屬性 => 主目錄 => 配置 => 添加,如下圖配置:
可執行文件路徑:C:/WINDOWS/system32/inetsrv/fcgiext.dll
6. 寫個 php 測試下吧
phpinfo();
?>
PHP目錄權限:IWAM_機器名稱(和上圖中並沒有影響,感覺它的權限更小些,但兩種權限都能正常運行)
錯誤信息:
1。Error Number: 14001 (0x800736b1).
沒有安裝Microsoft Visual C++ 2008 Redistributable Package
2。Error Number: 5 (0x80070005).
Unable to place a FastCGI process in a JobObject. Try disable the Application Pool CPU Limit feature
取消CPU的監視
3。No input file specified.
估計是沒配置 fastcgi.impersonate。
第二部分:apache2.2.11 + php5.3
1。下載apache2.2.11 下載網址:www.apache.org
2。下載php5.3 下載網站:http://windows.php.net/download/ (在此選擇VC6 x86 Thread Safe版本)
3。解壓php5.3到任意目錄,找到PHP安裝目錄下的php.ini-development並改名為php.ini文件,開始配置:
; date.timezone = 改為 date.timezone = Asia/Shanghai
; extension_dir = "ext" 改為 extension_dir = "./ext/"
;error_reporting = E_ALL & ~E_DEPRECATED 去掉;
;display_errors = On 去掉;
;display_startup_errors = On 去掉;
;error_prepend_string = 改為:""
;error_append_string = 改為:"
"
;default_mimetype = "text/html" 去掉;
至於php.ini里面的extension開啟方式,根據自己所需求開啟所需功能。
4。配置httpd.conf也就是apache的配置文件
添加:
LoadModule php5_module "D:/php/php-5.3.0/php5apache2_2.dll"
PHPIniDir "D:/php/php-5.3.0"
下面的模塊,根據自己的需求開啟。
創建虛擬目錄:
DocumentRoot D:/php/Apache2.2/htdocs1
ServerName 127.0.0.22:80
Options Indexes FollowSymLinks
DirectoryIndex index.html index.htm index.php
AllowOverride All
Order allow,deny
Allow from all
ErrorLog D:/php/Apache2.2/htdocs1/error.log
LogLevel warn
LogFormat "%v %h %l %u %t /"%r/" %>s %b" vhost
CustomLog D:/php/Apache2.2/htdocs1/access.log vhost
OK了,運行一下看看效果吧。
http://www.nhs8.com/post/1312.html
http://www.phpwind.net/read-htm-tid-852726.html