IIS+FastCGI+PHP5.3+MySQL5.1+Gzip

原文地址

http://www.chinaz.com/server/2010/0712/120236.shtml

感謝Javalet的精心製作

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip  詳細配置圖文教程

本文所用的軟件名稱及下載地址:

PHP5.3.2:php- 5.3.2-nts-Win32-VC9-x86.zip

地址:

http://windows.php.net/downloads/releases/php-5.3.2-nts-Win32-VC9-x86.zip

MySQL:mysql-essential-5.1.48-win32.msi

地址:

http://windows.php.net/downloads/releases/php-5.3.2-nts-Win32-VC9-x86.zip

FastCGI:這個有兩種配置方法,正文中詳細介紹

phpMyAdmin: 本文用的是3.3.4版

Zend Optimizer:目前的Zend Optimizer還不支持PHP5.3.2 ,等出新版後我們再裝。

前 言:PHP5.3的版本選擇

現在的PHP5.3 For Windows一共給了四個版本:VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,參考PHP官網提供下載的地方左邊的英文來看看這幾個版本有什麼區別。

一、如何選擇PHP5.3的VC9版本和 VC6版本

VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。

VC9 版本是使用Visual Studio 2008編譯器編譯的,如果你的PHP是用IIS來架設的,那你就選擇VC9版本。

二、如何選擇 PHP5.3的Thread Safe和Non Thread Safe版本

先從字面意思上理解,Thread Safe是線程安全,執行時會進行線程(Thread)安全檢查,以防止有新要求就啓動新線程的CGI執行方式而耗盡系統資源。Non Thread Safe是非線程安全,在執行時不進行線程(Thread)安全檢查。

再來看PHP的兩種執行方式:ISAPI和FastCGI。

ISAPI 執行方式是以DLL動態庫的形式使用,可以在被用戶請求後執行,在處理完一個用戶請求後不會馬上消失,所以需要進行線 程安全檢查,這樣來提高程序的執行效率,所以如果是以ISAPI來執行PHP,建議選擇Thread Safe版本;

而FastCGI執行方式是 以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效 率,所以,如果是以FastCGI來執行PHP,建議選擇Non Thread Safe版本。

我 們使用IIS+FastCGI方式配置服務器環境,所以使用Non Thread Safe版本。

瞭解瞭如何選擇PHP版 本,下面開始我們的IIS+PHP5.3+MySQL5.1+Gzip的配置過程

第一步:手工配置PHP5.3

下載目前爲 止最新版的PHP5.3.2

因爲手工配置更靈活且更能瞭解細節,所以我們介紹手工配置PHP,所以選擇下載zip文件:php- 5.3.2-nts-Win32-VC9-x86.zip。

1、 解壓php-5.3.2-nts-Win32-VC9-x86.zip至安裝目錄,這裏是C:\

2、打開php-5.3.2- nts-Win32-VC9-x86,建立php.ini文件

複製一個新的php.ini-development文件,並將文件名改爲 phi.ini。

如下圖

3、打開php.ini文件,修 改extension_dir的值

修改data.timezone 的值

選擇啓用模塊:將用到的模塊前 的;去掉,注意啓用php_exif.dll時,必需將其放在mbstring後面,即將php_exif.dll剪切到 php_mbstring.dll後面。

配置FastCGI模式時,將 cgi.force_redirect設置爲0,將cgi.rfc2616_headers和fastcgi.impersonate設置爲1。

稍 候我們會使用iProber探針來檢測php環境,所以這裏必須開啓short_open_tag = On,否則,會出現“iProber.php on line 910”錯誤。

至此,php部分配置完畢。下面 我們來在IIS裏添加對php的支持,當然,我們採用的FastCGI方式。

第二步:配置IIS的FastCGI模塊

爲 IIS增加FastCGI模塊有兩種方式,一種是直接下載FastCGI Extension文件,另一種是使用微軟的“web平臺安裝程序”,在這裏我們介紹後者。

第一種方式中FastCGI Extension 文件的名稱和下載地址爲:

文件名:FastCGI Extension 1.5 for IIS 6.0 and IIS 5.1 - RC (x86)

地址:http://www.iis.net/downloads/default.aspx?tabid=34&i=1877&g=6

該安裝程序需要.net 2.0支持,請確認已經安裝.net Framework2.0。

下面我們來介紹使用微軟的“web平臺安裝程序”來配置FastCGI。

1、 FastCGI第一步:打開微軟的“web平臺安裝程序”,網址是:

http://www.microsoft.com/web/gallery/install.aspx?appid=fastcgiiis6

打開該網址單擊下面紅框內的按鈕,進入下一步。

在彈出的對話框裏,單擊運行。

彈出安全警告對話框,再次單擊運行。

接下來是下載web安裝程序對話框

下載完安裝程序後是加載web平臺

加載完後,彈出FastCGI安裝程序對話框,單擊安裝繼續。

接下來是同意條款,單擊我接受

正式進入安裝,由於文件較小,安裝過程非常迅速。

稍候即完成安裝!

最後,單擊退出並關閉IE

2、 下面在IIS服務裏面進行配置,在IIS裏右擊“網站”節點,然後單擊屬性,彈出屬性對話框。如圖

單 擊“主目錄”選項卡,然後單擊“配置”按鈕

單 擊添加,添加一個新的ISAPI項

在 C:\window\system32\inetsrv目錄下,選中fcgiext.dll

注意,這裏別忘了添加.php擴展名

在C:\windows\system32\inetsrv文件夾中,找到fcgiext.ini文件,並打開

在 fcgiext.ini文件底部添加如下配置信息:

[Types]

php = PHP

[PHP]

ExePath=C:\php-5.3.2-nts-Win32-VC9-x86\php-cgi.exe

至 此,FastCGI配置完成,下面我們來測試下是否配置正確,將iProber探針程序複製到web目錄

在 瀏覽器輸入:http://127.0.0.1/i/iProber.php ,輸出如下圖:

我 們看到以下信息

PHP運行方式 CGI-FCGI

PHP版本 5.3.2

說 明IIS+PHP的FastCGI方式配置成功!

注意,如果出現以下錯誤信息

============================

Error Details:

Error Number: 14001 (0x800736b1)。

Error Description: 由於應用程序配置不正確,應用程序未能啓動。重新安裝應用程序可能會糾正這個問題。

HTTP Error 500 - Server Error.

Internet Information Services (IIS)

============================

則 是沒有安裝VC9運行庫即VISUAL C++ 2008,

Microsoft Visual C++ 2008 Redistributable Package (x86)下載地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn

http://download.microsoft.com/download/7/5/0/7502f4e9-1f90-4895-9259-1bde67b8b9a1/vcredist_x86.exe

第三步:在IIS上啓用 Gzip壓縮

關於Gzip的作用,這裏就不再討論了,大家可以查查資料

1、 啓用GZip第一步:右擊“網站”,然後單擊“屬性”,單擊“服務”選項卡,選中紅框內的兩項,然後單擊“確定”。

2、 右擊IIS下面的Web服務擴展節點,再單擊“添加一個新的Web服務擴展”,如下圖

添加擴展名爲“HTTP Compression”的擴展,注意gzip.dll所在的目錄爲:C:\windows\system32\inetsrv\gzip.dll

在IIS的Web服務擴展裏,選中HTTP Compression,然後在左側單擊允許。

3、設置Gzip參數

設置Gzip需要手工修改C:\windows\system32\inetsrv目 錄下的MetaBase.xml文件,MetaBase.xml對於IIS的運行非常重要,若被破壞輕則IIS不能正常運行,重則可導致重裝系統,所以修 改這個文件之前一定要做好備份,下圖中名爲MetaBase_backup.xml的文件就是一個備份。

下面設置deflate及gzip的具體參數:

設置deflate的壓縮參數,其中主要包括文件擴展名,腳 本文件擴展名,壓縮比例,需要說明的是,這裏壓縮比例推薦設置爲1,我們稍候討論哪個壓縮比最合適。

設置gzip的壓縮參數,其中主要包括文件擴展名,腳本文件擴展名,壓縮比例,需要說明的是,這裏壓縮比例仍然推薦 設置爲1。

配置完成後,啓動IIS,使設置生效

4、如果不想停止IIS而直接編輯MetaBase.xml文件,則按下圖設置:

在若編輯 MetaBase.xml裏不想停止IIS,則在IIS節點上,注意是IIS,不是網站,在IIS上右擊,單擊“屬性”

選中“允許直接編輯配置數據庫”這一項,可不停止IIS編輯MetaBase.xml文件

5、檢測Gzip壓縮是否啓用

如果大家的網站發佈在Internet上,可以使用許多在線檢測工具,很多站 長網站上都有提供,如何網站是在自己的電腦上試驗,要檢測Gzip啓用情況,需要一些能夠抓取HTTP頭信息的軟件,這裏推薦使用 HttpAnalyzer V4,下載這個軟件後,則可清晰的看到Gzip的作用。

我們先關閉Gzip,看年沒有啓用Gzip壓縮時的HTTP頭 信息截圖:

可以看到,上圖中的 Compression Saving顯示爲0,我們啓用Gzip壓縮,再來看一下HTTP頭信息情況:

上圖中可以看到,Content-Encoding顯示爲gzip,右側Compression Saving即壓縮率顯示爲73.29%,說明壓縮還是很有效的。

用這個軟件大家也可以測試一下自己網站的壓縮率。

6、有關壓縮率的設定

根 據官方的測試數據,200KB 的網頁依據不同 gzip 等級的壓縮比例爲

Gzip level 1 0.593

Gzip level 6 (預設) 0.586

Gzip level 9 0.585

由此 可知,大於 1 以後的壓縮效益是很低的,可官方說法,這會消耗服務器資源,因此他們強烈建議設定成 1,gzip 預設是 6。

用某論壇的實際 測試結果如下:

level 9 : 88.7% 壓縮比

level 1 : 86.7% 壓縮比

用我自己的網站測試數據如下

Level1時的壓縮比爲62.93%,在Level9時的壓縮比爲64.30%,可以 看到Level1和Level9基本相差不大。

第四 步:安裝MySQL5.1

我們這裏介紹的是MySQL5.1.48版本。

MySQL的下載地 址在本篇開頭已經給出。

關於MySQL安裝比較簡單,這裏只給出截圖,不再詳述

由於ZendOptimizer到現在也沒有出用於php5.3的版本,我們也就沒法安裝了。

官方討論區說,是因爲 php5.3的改動太大,使ZendGard也要發生很大變化,所以ZendOptimizer要等Gard完善後才能出來。

至 此,IIS+FastCGI+PHP5.3+MySQL+Gzip完整配置完成。

本文從開始到寫成歷經了整兩天時間,由於個人水平有限,只能 寫這最簡單的文章,高手就不用看了,希望對剛入門的新手有所幫助,我也就達到目的了。文中對於理論幾乎沒有闡述,只是對配置過程進行了最詳細的介紹,這樣 使新手即使不太明白,照本文也可以配置出一樣的環境來,本文章的錯誤及疏漏之處,還請大家指出來,大家在配置中有何問題,我們一起來探討解決。

現 在已經是凌晨5點了,又一個不眠之夜,不過我相信還有很多像我這樣的朋友,因爲今天凌晨是2010南非世界盃決賽!西班牙VS荷蘭,可惜我沒能好好看。

歡 迎訪問我的網站:

惟一女孩:www.vegirl.com

Java專題站:www.jsfcn.com

新鈦下載站:www.ntdown.com

我的郵箱:[email protected]

Javalet完成於

2010 年7月12日5點

感謝Javalet的精心製作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章