IIS6.0 開(kāi)啟Gzip方法及PHP Gzip函數(shù)分享
IIS 的 GZIP 壓縮
1.首先備份 IIS 的配置文件, 復(fù)制 C:\Windows\system32\inetsrv\metabase.xml到另外的備份文件夾中. C:\Windows\system32\inetsrv\metabase.xml是 IIS 的核心配置文件,該文件的完整性一但被破壞,IIS 將無(wú)法正常運(yùn)行,嚴(yán)重到需要重新安裝系統(tǒng).
2. 在開(kāi)始菜單中啟動(dòng) Internet 信息服務(wù)(IIS)管理器,右鍵點(diǎn)擊“網(wǎng)站”屬性,打開(kāi)“服務(wù)”選項(xiàng)卡,勾選“HTTP 壓縮”的兩個(gè)選項(xiàng)?!芭R時(shí)目錄”和“臨時(shí)目錄最大容量”可根據(jù)需要自行設(shè)置。設(shè)置完成后點(diǎn)擊確定。
3. 右鍵點(diǎn)擊“網(wǎng)站”下方的 “Web服務(wù)擴(kuò)展”,添加一個(gè)新的Web服務(wù)擴(kuò)展,擴(kuò)展名填寫(xiě)為“HTTP Compression”或其他,都可以。“要求的文件”添加:c:\windows\system32\inetsrv\gzip.dll ,并勾選“設(shè)置擴(kuò)展?fàn)顟B(tài)為允許”,完成后點(diǎn)擊確定。
4.下面的步驟有些復(fù)雜,如果沒(méi)有確定的把握能理解,最好不要嘗試,右鍵點(diǎn)擊“Internet 信息服務(wù)的”“本地計(jì)算機(jī)”屬性,勾選“允許直接編輯配置數(shù)據(jù)庫(kù)”并確定。
5. 在開(kāi)始菜單中運(yùn)行 notepad C:\Windows\system32\inetsrv\metabase.xml ,打開(kāi)metabase.xml 文件,請(qǐng)?jiān)谌魏胃膭?dòng)前再次確認(rèn)該文件已經(jīng)備份。
6. 用文本編輯器打開(kāi)metabase.xml ,用查找功能找到“IIsCompressionScheme”,共有3處,都在一起,分別是deflate、gzip和Parameters,deflate也是一種壓縮格式,不過(guò)性能上不如gzip。需要修改的是deflate和gzip這兩段,參數(shù)基本一樣,都要修改。
HcDynamicCompressionLevel是用來(lái)設(shè)置壓縮率,默認(rèn)是0,最高是10。低壓縮級(jí)別生成稍大一些的壓縮文件,但對(duì) CPU 和內(nèi)存資源的總體影響較小。高壓縮級(jí)別通常會(huì)生成較小的壓縮文件,但會(huì)占用較多的 CPU 時(shí)間和內(nèi)存。有人說(shuō)設(shè)置成9性價(jià)比最高。
HcFileExtensions是用來(lái)設(shè)置壓縮的靜態(tài)文件擴(kuò)展名,默認(rèn)是htm、html、txt,根據(jù)網(wǎng)站的自身情況添加擴(kuò)展名,最基本的是js、css。添加時(shí)注意原有的換行格式。
HcScriptFileExtensions是用來(lái)設(shè)置壓縮的動(dòng)態(tài)文件擴(kuò)展名,默認(rèn)是asp、dll和exe,根據(jù)需要自行添加擴(kuò)展名,無(wú)外乎aspx、php等??梢詫⑦@一項(xiàng)的默認(rèn)刪除留空,這樣所有的動(dòng)態(tài)響應(yīng)都以壓縮方式發(fā)送。另外,還將動(dòng)態(tài)壓縮 HcFileExtensions 中所有未指定的靜態(tài)文件類型,并且因此不將它們放入緩存。同樣地,必須將 HcDoDynamicCompression 設(shè)置為 true,以進(jìn)行動(dòng)態(tài)壓縮。
PHP Gzip
/*
* 壓縮數(shù)據(jù)
*/
public static function ob_gzip($content) // $content 就是要壓縮的頁(yè)面內(nèi)容,或者說(shuō)餅干原料
{
if( !headers_sent() && // 如果頁(yè)面頭部信息還沒(méi)有輸出
extension_loaded("zlib") && // 而且zlib擴(kuò)展已經(jīng)加載到PHP中
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //而且瀏覽器說(shuō)它可以接受GZIP的頁(yè)面
{
$content = gzencode($content." OK",9); //此頁(yè)已壓縮”的注釋標(biāo)簽,然后用zlib提供的gzencode()函數(shù)執(zhí)行級(jí)別為9的壓縮,這個(gè)參數(shù)值范圍是0-9,0表示無(wú)壓縮,9表示最大壓縮,當(dāng)然壓縮程度越高越費(fèi)CPU。
//然后用header()函數(shù)給瀏覽器發(fā)送一些頭部信息,告訴瀏覽器這個(gè)頁(yè)面已經(jīng)用GZIP壓縮過(guò)了!
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}
return $content; //返回壓縮的內(nèi)容,或者說(shuō)把壓縮好的餅干送回工作臺(tái)。
}
相關(guān)文章
PHP對(duì)稱加密函數(shù)實(shí)現(xiàn)數(shù)據(jù)的加密解密
本文詳細(xì)介紹了PHP一個(gè)簡(jiǎn)單的對(duì)稱加密函數(shù)實(shí)現(xiàn)數(shù)據(jù)的加密解密,詳細(xì)的介紹了對(duì)稱加密和非對(duì)稱加密,有需要的可以了解一下。2016-10-10PHP擴(kuò)展遷移為PHP7擴(kuò)展兼容性問(wèn)題記錄
PHP7擴(kuò)展編寫(xiě)的時(shí)候,提供的一些內(nèi)核方法和之前的PHP之前的版本并不能完全兼容。有不少方法參數(shù)做了調(diào)整。下面是在遷移過(guò)程中遇到的一些問(wèn)題,感興趣的朋友參考下吧2016-02-02php使用cookie實(shí)現(xiàn)記住用戶名和密碼實(shí)現(xiàn)代碼
這篇文章主要介紹了php使用cookie實(shí)現(xiàn)記住用戶名和密碼實(shí)現(xiàn)代碼,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04PHP中實(shí)現(xiàn)中文字串截取無(wú)亂碼的解決方法
這篇文章主要介紹了PHP中實(shí)現(xiàn)中文字串截取無(wú)亂碼的解決方法,直接使用PHP函數(shù)substr截取中文字符可能會(huì)出現(xiàn)亂碼,下面跟隨腳本之家小編一起看看具體解決方法吧2018-05-05在Laravel的Model層做數(shù)據(jù)緩存的實(shí)現(xiàn)
這篇文章主要介紹了在Laravel的Model層做數(shù)據(jù)緩存的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09