萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> Windows下IIS以FastCGI模式運行PHP的方法

Windows下IIS以FastCGI模式運行PHP的方法

class="area">               今天電腦知識吧的小編為大家分享一篇:“Windows下IIS以FastCGI模式運行PHP的方法”,希望可以幫助到大家,具體如下:

由於PHP5.3 的改進,原有的IIS 通過isapi 方式解析PHP腳本已經不被支持,PHP從5.3.0 以後的版本開始使用微軟的 fastcgi 模式,這是一個更先進的方式,運行速度更快,更穩定。本文介紹在IIS上以FastCGI模式運行PHP。我們以 Windows 2003 + IIS 6.0(windows2003自帶) 為例。

第一步:下載安裝的文件

1. FastCGI 版本 fcgisetup_1.5_x86_rtw.msi
2. MySQL 版本 mysql-5.5.19-win32.msi
3. PHP 版本 php-5.3.8-nts-Win32-VC9-x86.zip

提示:
1. 我們這裡使用目前最新的FastCGI 1.5版本。官方地址
2. Windows下安裝MySQL就選擇.msi安裝包格式,我們選擇了mysql-5.5.19-win32.msi ,雙擊根據向導安裝即可,簡單方便。
3. PHP我們選擇用php-5.3.8-nts-Win32-VC9-x86.zip這個版本。“vc9”是為IIS定制的。“nts”是非線程安全版本,針對PHP的FastCGI安裝方式。 

第二步:安裝文件

1. 在要安裝的磁盤建一個文件夾。我們在D盤的根目錄下創建一個Web文件夾。 D:\Web。
2. 在Web文件夾下創建一個WWW文件夾,用來存放你的PHP網站程序。D:\Web\WWW。
3. 把下載的php-5.3.8-nts-Win32-VC9-x86.zip 解壓到 D:\Web\PHP 文件夾。
4. 安裝MySql數據庫,把MySQL安裝到 D:\Web\MySQL文件夾。具體MySQL安裝過程可以參考文檔MySQL安裝圖解。
5. 為IIS安裝FastCGI擴展。首先確定系統已經安裝好了IIS。然後雙擊fcgisetup_1.5_x86_rtw.msi安裝,如果C盤是你的Windows系統安裝盤,它會把fcgi特定的文件復制到 C:\Windows\system32\inetsrv 文件夾下,注冊並且使fcgi的web服務生效,這時在IIS的 “Web服務擴展” 裡多了 FastCGI Handler。

第三步:配置 IIS

1. 點擊 “控制面板” -> “管理工具” -> “internet 信息服務”(或者直接點擊“開始”->“運行”->輸入inetmgr.exe),打開IIS。
2. 點擊“網站”->“右鍵-屬性”,在屬性對話欄中點擊“主目錄”->“配置”->“添加”。
3. 在"添加與編輯應用程序擴展名映射”對話框中,點擊浏覽,找到 C:\Windows\system32\inetsrv 中的fcgiext.dll。擴展名寫上“.php”, “動作”項中點“限制為”,寫上“GET,POST,HEAD”,把下面兩個選項 “腳本引擎”、“確認文件是否存在” 都勾上。確認配置。
4. 返回網站屬性框,點擊“文檔”,添加 “index.php” 做為默認頁。最後點擊“確認”。
5. 點擊“網站”->“右鍵-新建”->“網站”,建立一個新站點,端口我們這裡設置為 8080,網站主目錄路徑為 D:\Web\WWW。

第四步:配置FastCGI

在安裝FastCGI後,在C:\Windows\system32\inetsrv文件夾中有以下三個重要文件:

fcgiext.dll - 這是fastcgi控制柄動態鏈接庫。它可以為與fastcgi進行通信的程序處理請求。
fcgiext.ini - 這是配置文件,包含擴展到fastcgi進程的文件映射。它也包含了fastcgi進程池的配置。
fcgiconfig.js - 這個配置fastgci的擴展。這個腳本更新fcgiext.ini文件,修改iis元庫,如果有必要的話重復使用web服務應用池。

這裡配置FastCGI有兩種方法,一種是通過命令行來實現配置,另一種直接修改fcgiext.ini文件。

1. 通過命令行來實現配置

打開命令行,將地址轉換到C:\Windows\system32\inetsrv,輸入以下命令

	cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"D:\Web\php\php-cgi.exe"	cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:5000	cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000	cscript fcgiconfig.js -set -section:"PHP" -RequestTimeout:360	cscript fcgiconfig.js -set -section:"PHP" -ActivityTimeout:120

腳本的含義,分別是:

  1. 注冊PHP到FastCGI。
  2. InstanceMaxRequests 用來設置應用程序池回收。FastCGI進程請求數達到InstanceMaxRequests數值5000,應用程序池將自動回收。默認值是1000。
  3. 當環境變量PHP_FCGI_MAX_REQUESTS達到10000將自動回收應用程序池。
  4. RequestTimeout 設置請求超時時間,也就是請求允許的最大時間,如果FastCGI進程請求超過此設置將被禁止,值是90秒。
  5. ActivityTimeout 指定FastCGI進程請求的最大活躍時間,在設定時間內,FastCGI進程和IIS沒有通信,將終止進程。默認值是70秒。
2. 直接配置fcgiext.ini

打開C:\windows\system32\inetsrv\fcgiext.ini文件,加入

	[Types]	  php=PHP	[PHP]	  ExePath=D:\Web\php\php-cgi.exe	InstanceMaxRequests=5000	EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000	RequestTimeout=360	ActivityTimeout=120

提示:“php” 表示擴展名,“PHP” 是配置節名稱,以 “[PHP]” 定義。

copyright © 萬盛學電腦網 all rights reserved