今天作了一下IIS6下升級到PHP 5.3.X,可是卻發現了很多問題。在之前PHP 5.2.X中,只須要使用php5isapi.dll的方式就能夠,但在PHP 5.3之後卻再也不支持ISAPI模式了,也沒有此文件。因此本文介紹使用FastCgi在IIS6來配置PHP 5.3運行環境。 php
一、下載PHP 5.3.X mysql
官方下載地址:http://windows.php.net/download/ redis
注意,必定要下載VC9 x86 Thread Safe的,文件名形式如:php-5.3.13-Win32-VC9-x86.zip sql
二、下載FastCGI windows
官方下載地址:http://www.iis.net/extensions/fastcgi api
有支持IIS6和IIS5.1的32位版本和64位版本,還有支持IIS7的,由於IIS7與IIS6差異比較大,因此對於IIS7之後再介紹吧。 瀏覽器
三、安裝FastCgi curl
安裝FastCgi沒什麼可介紹的,可是有一點要注意,就是系統要先安裝VC9運行庫才能正常運行,不然會報「FastCGI Error 14001 (0x800736b1)」之類的錯誤。 socket
因此要先安裝VC9運行庫(即VISUAL C++ 2008) 測試
Microsoft Visual C++ 2008 Redistributable Package (x86)下載地址:
http://download.microsoft.com/download/5/9/e/59e74271-2b59-49a1-b955-96b69cc34f38/vcredist_x86.exe
配置FastCGI
打開FASTCGI配置文件C:\WINDOWS\system32\inetsrv\fcgiext.ini,在最後[Types]修改成這樣的樣式
[Types]
php=PHP
[PHP]
ExePath=D:\php\php-cgi.exe
四、開始安裝PHP環境
解壓php-5.3.13-Win32-VC9-x86.zip壓縮包到 d:\php
找到PHP安裝目錄下的php.ini-production並更名爲php.ini文件,也有人使用php.ini-development。
修改PHP.ini文件
找到
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; date.timezone =
更改成
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
找到
; On windows:
; extension_dir = "ext"
改成
; On windows:
extension_dir = "D:\php\ext"
查找extension=php_,去掉如下幾個擴展前面的分號(基本的幾項)。
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_xmlrpc.dll
查找short_open_tag = Off,改爲On,讓其支持短標籤。
增長一行(很是重要)
fastcgi.impersonate = 1
開啓下面兩項
cgi.fix_pathinfo=1
cgi.force_redirect = 0
五、配置IIS
而後打開IIS管理器,網站上點擊右鍵 -> 屬性 -> 主目錄 -> 配置 -> 添加
擴展名:.php
可執行文件:C:\WINDOWS\system32\inetsrv\fcgiext.dll (根據本身的安裝路徑)
動做限制爲:GET,HEAD,POST,TRACE
六、測試PHP運行
寫個php測試文件
<? phpinfo(); ?>
能看到運行界面說明就成功了!
新版本的PHP5.3經過以往老方法已經不能在IIS上安裝了(由於如今php 5.3已經不支持ISAPI了,而是用FastCGI了),如今給出在IIS上安裝PHP5.3之後版本的教程。
首先確定是安裝IIS了,這個應該不要教吧,不會的能夠網上找一找,不少的。
而後下載並安裝IIS FastCGI,下載地址:http://www.iis.net/download/fastcgi
選擇 x86的,Or, download x86,下載下來名稱爲 fcgisetup_1.5_rtw_x86.msi。以下圖
windows2003+IIS6+PHP5.3.8的安裝配置
這個時候在IIS 6的「WEB服務擴展」裏就多出了一個FastCGI Handler
windows2003+IIS6+PHP5.3.8的安裝配置
再下載安裝IIS下的PHP5.3.8,下載地址http://windows.php.net/download(注意IIS下要選擇VC9的版本)解壓到所需目錄,該目錄須要給予user讀取運行權限。
下面是要配置和修改的內容:
說明
(1)若是你的PHP5.3.8是安裝版(即以.msi結尾的)安裝完全部的軟件就能夠直接測試運行,安裝過程當中已經幫你配置完成。
(2)若是你的PHP5.3.8是壓縮版(即以.zip結尾的)安裝完後要做如下配置。
1.環境變量修改
個人電腦》屬性》高級》環境變量》系統變量
Path=E:\PHP\;(加到最前面,若是沒有能夠本身建一個。)
2.FastCGI安裝目錄內的修改(註冊PHP 到 FastCGI)
打開C:\WINDOWS\system32\inetsrv\fcgiext.ini文件
在文件最後加上下面的語句:
[Types](這個是文件原來就有的,在[Types]後面加上下面的語句就能夠,要所有哦否則會報錯的。)
php=PHP
[PHP]
ExePath=E:\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:E:\PHP\
3.PHP.ini的修改
PHP5.3.8安裝目錄下是沒有PHP.ini這個文件的,只有php.ini-development和php.ini-production,咱們把php.ini-development改成php.ini(固然若是你怕有錯能夠先備份一下)。
註明:首先建一個文件夾命名爲TMP,位置隨意我這裏放在E:\PHP\tmp。 (upload_tmp_dir會用到,upload_tmp_dir是用來定義上傳文件存放的臨時路徑,這裏能夠修改並給它定義一個絕對路徑,同時須要有讀、寫權限。)
用搜索(快捷鍵:Ctrl+F)的方式把下面的關鍵字改爲如今的值:
short_open_tag = Off (這個它原本默認就是這樣咱們就不要改了。)
把;upload_tmp_dir =改成upload_tmp_dir=」E:\PHP\tmp」
把;cgi.force_redirect = 1改成cgi.force_redirect=0
把;fastcgi.impersonate = 1;改成 fastcgi.impersonate=1;
把; extension_dir = 「ext」改成extension_dir=」E:\PHP\ext」
把;date.timezone =改成date.timezone =PRC(若是不修改date.timezone,打開網頁的時候蠻有可能提示500錯誤。也有人把值改成Asia/Shanghai,我沒試過大家能夠試試。)
在Windows Extensions中去除擴展前面的分號(;):
; extension=php_curl.dll
; extension=php_gd2.dll
; extension=php_ldap.dll
; extension=php_mbstring.dll
; extension=php_exif.dll
; extension=php_mysql.dll
; extension=php_mysqli.dll
; extension=php_sockets.dll
; extension=php_xmlrpc.dll
4.Internet信息服務(IIS)管理器的修改
(1)
網站》屬性》主目錄》配置》添加
可執行文件=C:\WINDOWS\system32\inetsrv\fcgiext.dll
擴展名= .php
動做》限制爲=GET,HEAD,POST
上面的整個操做如圖
2)網站》屬性》文檔》添加
默認內容=index.php
這裏所有配置好了,必定要把IIS服務重啓一下。
5.測試(必定要重啓IIS服務)
最後用文本寫一段測試代碼:
<?php
phpinfo();
?>
保存爲index.php,名字隨便取只要後綴是.php就能夠。
把index.php(你寫的文件)放到根目錄下,我這裏是C:\Inetpub\wwwroot,
而後在瀏覽器中輸入http://127.0.0.1/index.php或http://localhost/index.php(二者隨便一個就能夠效果同樣)就能夠獲得返回的信息了。
返回的信息,如圖:
PHP5.4.0RC2照此安裝同樣成功!