一般在已經(jīng)安裝iis的windows系統(tǒng)上已經(jīng)默認(rèn)支持了asp及aspx,那么下面主要講解如何讓其也支持php并且支持MYSQL數(shù)據(jù)庫(kù)。
特別聲明:【如果是選擇PHP5.4.10安裝版則可以省略此步驟,因?yàn)樗詣?dòng)添加了配置,但是由于PHP5.4.10沒(méi)有安裝版,所以只能自己配置,自己配置難度較大,我最終選擇的是PHP5.3.20版本
但以下部分我也把PHP5.4.10手動(dòng)配置給寫(xiě)了出來(lái),供網(wǎng)友參考】
第一部分:、首先你要到網(wǎng)址http://windows.php.net/download/下載PHP For Windows 版本,你會(huì)看到這里有很多不同的版本可以下載,那么該如何選擇呢?第一個(gè)選擇是首先選擇最新的版本,我們看到現(xiàn)在最新的版本是PHP 5.4 (5.4.10),好那么我們就下載PHP5.4.10版本。
?、偃绾芜x擇PHP5.4.10的VC6版本和VC9版本
VC6版本是使用Visual Studio 6編譯器編譯,如果PHP是用Apache來(lái)架設(shè),那就選擇VC6版本。
②如何選擇PHP5.4.10的Thread Safe版本和Non Thread Safe版本
從字面上理解,Thread Safe是線程安全,執(zhí)行時(shí)會(huì)進(jìn)行線程(Thread)安全檢查,以防止有新要求就啟動(dòng)新線程的CGI執(zhí)行方式而耗盡系統(tǒng)資源。Non Thread Safe是非線程安全,在執(zhí)行時(shí)不進(jìn)行線程(Thread)安全檢查。
第二部分:、再來(lái)看PHP的兩種執(zhí)行方式:ISAPI和FastCGI。
------------------------------------------------------------------------------
注意:
③我們有沒(méi)有什么辦法讓PHP5.4.10 在IIS里運(yùn)行的呢?當(dāng)然有了,那就是使用FastCGI。據(jù)說(shuō)它的效率很高,
④為什么FastCGI的執(zhí)行效率會(huì)很高呢?那是因?yàn)镕astCGI是可伸縮架構(gòu)的CGI開(kāi)放擴(kuò)展,其主要行為是將CGI解釋器進(jìn)程保持在內(nèi)存中并因此獲得較高的性能。傳統(tǒng)的CGI解釋器的反復(fù)加載是CGI性能低下的主要原因,如果CGI解釋器保持在內(nèi)存中并接受FastCGI進(jìn)程管理器調(diào)度,則可以不需要進(jìn)行線程的安全檢查,除去線程安全檢查的防護(hù)反而可以提高執(zhí)行效率
第三部分: Windows 2003環(huán)境下搭建PHP5.4.10教程
1.下載 FastCGI For IIS6
http://www.iis.net/expand/FastCGI(下載X86版本)把左邊的網(wǎng)址拷貝到地址欄即可下載
(注:實(shí)際是到http://www.iis.net/downloads/microsoft/fastcgi-for-iis這個(gè)網(wǎng)址下載FastCGI for IIS.)
下載頁(yè)面為:
下載的文件為FastCGIIIS6.26FastCGIIIS6.exe,下載之后,雙擊進(jìn)行安裝,出現(xiàn)如下圖所示的畫(huà)面:
關(guān)鍵是這一步,這一步不能點(diǎn)擊我接受,而要點(diǎn)擊上面的蘭色文字“直接下載鏈接”它就會(huì)到http://download.microsoft.com/download/E/0/C/E0C0709A-66E5-4113-9A6C-A5F65BF6717D/fcgisetup_1.5_x86_rtw.msi去直接下載。
安裝后在 C:\WINDOWS\system32\inetsrv 目錄下產(chǎn)生了五個(gè)文件。如下圖:
同時(shí)在 IIS 的 “Web 服務(wù)擴(kuò)展”里多了 FastCGI Handler。
2.下載PHP 5.4 (5.4.10)
到網(wǎng)址http://windows.php.net/download/下載PHP For Windows 版本VC9 x86 Non Thread Safe (2012-Dec-20 00:23:45)下載后解壓,解壓后拷貝到安裝目錄(我的安裝目錄是C:\PHPServer\PHP)。
3. 注冊(cè) PHP 到 FastCGI
我個(gè)人的理解是,只要“Web 服務(wù)擴(kuò)展”里的 FastCGI Handler 為允許時(shí),在加載 fcgiext.dll 時(shí),會(huì)讀取 fcgiext.ini 配置文件的內(nèi)容,根據(jù)里面的配置為每個(gè)網(wǎng)站提供映射。
打開(kāi)C:\WINDOWS\system32\inetsrv\fcgiext.ini文件
在文件最后加上下面的語(yǔ)句:
[Types](這個(gè)是文件原來(lái)就有的,在[Types]后面加上下面的語(yǔ)句就可以,要全部哦不然會(huì)報(bào)錯(cuò)的。)
php=PHP
[PHP]
ExePath=C:\PHPServer\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:E:\PHP\
“php”表示擴(kuò)展名,“PHP”是配置節(jié)名稱(chēng),以“[PHP]”定義。
4. 配置 php.ini
PHP5.4.10安裝目錄下是沒(méi)有PHP.ini這個(gè)文件的,只有php.ini-development和php.ini-production,我們將C:\PHPServer\PHP\php.ini-development復(fù)制一個(gè),然后重命名為 C:\PHPServer\PHP\php.ini(當(dāng)然如果你怕有錯(cuò)可以先備份一下)。
打開(kāi) C:\PHPServer\PHP\php.ini,
修改PHP.ini文件:
1。查找display_errors改為:display_errors = On
2。查找display_startup_errors改為:display_startup_errors = On
3。查找error_prepend_string改為:error_prepend_string = "<br><font color=#ff0000>"
4。查找error_append_string改為:error_append_string = "</font><br><br>"
5。查找extension_dir改為:extension_dir = "C:\PHPServer\PHP\ext\"
6。查找fastcgi.impersonate改為:fastcgi.impersonate = 1
7。下列代碼按下修改,在Windows Extensions中去除擴(kuò)展前面的分號(hào)(;):
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_exif.dll
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
可以看出主要是去掉前面的“;”號(hào)
8。查找date.timezone改為:date.timezone = PRC
修改完記得重啟 IIS。
5. 配置網(wǎng)站【如果是安裝版的此步驟也可以省略,例如PHP 5.3.20就可以下載到安裝版,
因?yàn)榘惭b版自動(dòng)添加了!】
右鍵網(wǎng)站 => 屬性 => 主目錄 => 配置 => 添加,如下圖配置:
可執(zhí)行文件路徑:C:\WINDOWS\system32\inetsrv\fcgiext.dll
全部配置好了,一定要把IIS服務(wù)重啟一下。
6. 新建一個(gè) phpinfo.php 文件,內(nèi)容為:
<?php
7.配置PHP后,運(yùn)行phpinfo.php程序,出現(xiàn)如下的錯(cuò)誤提示。
FastCGI Error
The FastCGI Handler was unable to process the request.
--------------------------------------------------------------------------------
Error Details:
Error Number: 5 (0x80070005).
Error Description: 拒絕訪問(wèn)。
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
原來(lái)是沒(méi)有賦予用戶(hù)相應(yīng)權(quán)限,注意這里是給“PHP安裝目錄”賦權(quán),給“IIS 啟動(dòng)帳戶(hù)組或用戶(hù)賦予讀取和運(yùn)行權(quán)限”
給此目錄增加一個(gè)“IIS 啟動(dòng)進(jìn)程帳戶(hù)”,方法如下:
“安全”標(biāo)簽,“添加”,“高級(jí)”,“立即查找”,“Network Server”,“確定”即可,就給目錄加上了IIS啟動(dòng)帳號(hào)。
看到類(lèi)似以下效果說(shuō)明你的服務(wù)器可以跑 php 了。
使用