㈠ 瀏覽器怎樣關閉gzip 壓縮
打開config文件夾下的config.php文件,搜索define('WITHOUT_GZIP',false);默認就是false 是flase就是啟用GZIP修改為true,將修改後文件覆蓋到config文件夾下
㈡ php如何取消ZipArchive壓縮
試試:ZipArchive :: getStatusString 和 ZipArchive::close
不對就看文檔:PHP ZipArchive類官方文檔
㈢ 編譯安裝apache 怎麼關閉 gzip
先來了解一下GZIP ,gzip是GNU zip的縮寫,它是一個GNU自由軟體的文件壓縮程序,也經常用來表示gzip這種文件格式。軟體的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公開發布,版本號是0.1,目前的穩定版本是1.2.4。
gzip可以級大的加速網站.有時壓縮比率高到80%,近來測試了一下,最少都有40%以上,還是相當不錯的.在Apache2之後的版本,模塊名不叫gzip,而叫mod_deflate
1、Apache啟用gzip
如果要開啟gzip的話,一定要打開下面二個模塊.
LoadMole headers_mole moles/mod_headers.so
LoadMole deflate_mole moles/mod_deflate.so
設置壓縮比率,取值范圍在 1(最低) 到 9(最高)之間,不建議設置太高,雖然有很高的壓縮率,但是佔用更多的CPU資源.
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4/.0[678] no-gzip
BrowserMatch /bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI //.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary #對代理的設置
</Location>
測試數據對css
Original Size: 44 KB
Gzipped Size: 10 KB
Data Savings: 77.27%
測試數據js
Original Size: 6 KB
Gzipped Size: 2 KB
Data Savings: 66.67%
測試數據php
Original Size: 62 KB
Gzipped Size: 15 KB
Data Savings: 75.81%
上面只是隨機拿的幾個數據,看的出來,使用了gzip壓縮後文件小多了.
另外講一下,有關squid對gzip的處理
在squid中,對同一個URL只保留一份緩存。對於如果不同browser(是否支持壓縮)如果頻繁交替訪問,例如:對某個cache住的目標,一個 http/1.0請求可能會導致squid強制更新其緩存。但接下來的另一個http/1.1請求又會導致squid再次更新緩存。這樣那squid緩存 數據就要頻繁更新,這就極大的降低了cache命中率。
不過還好,現實環境中不支持壓縮的browser畢竟是很少的情況,所以對於緩存命中率的降低很有限.
這個神通廣大的模塊就是mod_gzip. 它通過用和gzip一樣的壓縮演算法對apache發出的頁面進行壓縮,可能的話可以把頁面壓縮成為原來大小的十份之一。哪,如果10K的頁面只要傳1K這 不就是提速10倍嘛。當然一般網頁只可以達到3-6倍。那也很不錯。對吧。連google這樣一個大的網站都採用這個技術。你還不快跟上?
這樣一個好東東,來來來,我告訴你如何安裝:分3步,1、下載,2、修改配置,3、測試。
安裝, 配置
把mod_gzip放到你的apache的源代碼目錄下,新建一個mod_gzip目錄如果需要補丁(針對1.3.17.la版) 還需運行:
patch mod_gizp.c
按你需要,在配置中選擇動態DSO或靜態編譯進apache系統。如何處理在README中講得很清楚,如-add-mole=mod_gzip.c, make,make install等等。這里不多講。
把下列配置加入httpd.conf尾部。
# MOD_GZIP configuration
mod_gzip_on Yes
mod_gzip_minimum_file_size 1002
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 60000
mod_gzip_item_include mime "application/x-httpd-php"
mod_gzip_item_include mime text/*
mod_gzip_item_include mime "httpd/unix-directory"
mod_gzip_dechunk Yes
mod_gzip_temp_dir "/tmp"
mod_gzip_keep_workfiles No
mod_gzip_item_include file ".php3$"
mod_gzip_item_include file ".txt$"
mod_gzip_item_include file ".html$"
mod_gzip_item_exclude file ".css$"
mod_gzip_item_exclude file ".js$"
在保存修改後運行
…/bin/apachectl configtest確保配置修改無誤。
然後用 apachectl restart 指令重起服務。
修改,測試
在宣布做好了之前在測試一下是優秀程序員的習慣。為了盡量不影響你的用戶的瀏覽,我們可以用把新的apache驅動在8080埠上或者用指令控制mod_gzip起作用的目錄,而不是一下子全用mod_gzip.
用法如下:
MOD_GZIP configuration
沒有問題後你就可以讓你的用戶很開心的發現』XX網站現在好快哦。』
Mod_gzip真的很神奇,100K的HTML大 文檔只要12K就可以傳到用戶端了。越先採用這個技術你的用戶對你的網站的高速度印象就越深。不過有所得必有所失,由於解壓是在客戶端進行的,效果和用戶 的瀏覽器有一定關系。
2、IIS啟用gzip
現代的瀏覽器IE6和Firefox都支持客戶端Gzip,也就是說,在伺服器上的網頁,傳輸之前,先使用Gzip壓縮再傳輸給客戶端,客戶端接收之後由瀏覽器解壓顯示,這樣雖然稍微佔用了一些伺服器和客戶端的CPU,但是換來的是更高的帶寬利用率。對於純文本來講,壓縮率是相當可觀的。如果每個用戶節約50%的帶寬,那麼你租用來的那點帶寬就可以服務多一倍的客戶了。
IIS6已經內建了Gzip壓縮的支持,可惜,沒有設置更好的管理界面。所以要打開這個選項,還要費些功夫。
首先,如果你需要壓縮靜態文件(HTML),需要在硬碟上建一個目錄,並給它「IUSR_機器名」這個用戶的寫許可權。如果壓縮動態文件(PHP,asp,aspx)就不需要了,因為它的頁面是每次都動態生成的,壓縮完就放棄。然後在IIS管理器中,「網站」上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入「服務」標簽,選上啟用動態內容壓縮,靜態內容壓縮。
然後選中網站下面那個伺服器擴展,新建一個伺服器擴展。名字無所謂,下面的添加文件的路徑是:
c:/windows/system32/inetsrv/gzip.dll,然後啟用這個擴展。
這時候靜態內容是可以壓縮的,但是對於動態內容,aspx文件卻不在壓縮范圍內。因為默認的可壓縮文件並沒有這個擴展名。而管理界面中你又找不到可以增加擴展名的地方,這時候只能去修改它的配置文件了。
在 c:/windows/system32/inetsrv/下面有個MetaBase.xml文件,可以用記事本打開,找到 IIsCompressionScheme,有三個相同名字的段,分別是deflate,gzip,Parameters,第三段不用管它,前兩段有基本相同的參數,在這兩段的參數HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動態程序要壓縮,也加在這里。 HcDynamicCompressionLevel改成9,(0-10,9是性價比最高的一個)。
1.首先備份 IIS 的配置文件,
復制C:/Windows/system32/inetsrv/metabase.xml到另外的備份文件夾中.
C:/Windows/system32/inetsrv/metabase.xml是 IIS 的核心配置文件,該文件的完整性一但被破壞,IIS 將無法正常運行,嚴重到需要重新安裝系統.
2. 在開始菜單中啟動 Internet 信息服務(IIS)管理器,右鍵點擊「網站」屬性,打開「服務」選項卡,勾選「HTTP 壓縮」的兩個選項。「臨時目錄」和「臨時目錄最大容量」可根據需要自行設置。設置完成後點擊確定。
3. 右鍵點擊「網站」下方的 「Web服務擴展」,添加一個新的Web服務擴展,擴展名填寫為「HTTP Compression」或其他,都可以。「要求的文件」添加:c:/windows/system32/inetsrv/gzip.dll ,並勾選「設置擴展狀態為允許」,完成後點擊確定。
4.下面的步驟有些復雜,如果沒有確定的把握能理解,最好不要嘗試,右鍵點擊「Internet 信息服務的」「本地計算機」屬性,勾選「允許直接編輯配置資料庫」並確定。
5. 在開始菜單中運行 notepad C:/Windows/system32/inetsrv/metabase.xml ,打開metabase.xml 文件,請在任何改動前再次確認該文件已經備份。
6. 搜索並找到 metabase.xml 文件中的<IIsCompressionScheme 片段中的HcScriptFileExtensions,依照原有文件的格式添加你希 望進行 HTTP 壓縮的文件擴展名,靜態文件HcFileExtensions可添加 JS,CSS 等; 動態文件HcScriptFileExtensions可添加"ASPX"」ASMX」,如下:
<IIsCompressionScheme Location =」/LM/W3SVC/Filters/Compression/deflate」
HcCompressionDll=」%windir%/system32/inetsrv/gzip.dll」
HcCreateFlags=」0″
HcDoDynamicCompression=」TRUE」
HcDoOnDemandCompression=」TRUE」
HcDoStaticCompression=」FALSE」
HcDynamicCompressionLevel=」9″
HcFileExtensions=」htm
html
js
css
txt」
HcOnDemandCompLevel=」10″
HcPriority=」1″
HcScriptFileExtensions=」asp
aspx
asmx
dll
exe」
>
</IIsCompressionScheme>
<IIsCompressionScheme Location =」/LM/W3SVC/Filters/Compression/gzip」
HcCompressionDll=」%windir%/system32/inetsrv/gzip.dll」
HcCreateFlags=」1″
HcDoDynamicCompression=」TRUE」
HcDoOnDemandCompression=」TRUE」
HcDoStaticCompression=」TRUE」
HcDynamicCompressionLevel=」9″
HcFileExtensions=」htm
html
js
css
txt」
HcOnDemandCompLevel=」10″
HcPriority=」1″
HcScriptFileExtensions=」asp
aspx
asmx
dll
exe」
>
</IIsCompressionScheme>
注意「Compression/deflate」和「Compression/gzip」兩個片段都需要修改。動態壓縮等級,HcDynamicCompressionLevel建議設置為「9」
7. 保存並關閉 metabase.xml 文件。
8. 重新啟動 IIS 服務,運行「IISReset」或重新啟動 WWW 服務。
9. 其他:
如果你的伺服器上某一個Web站點不希望啟用 IIS 壓縮,請運行以下腳本:
cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoStaticCompression False
cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoDynamicCompression False
如果想增加啟用 HTTP 壓縮的文件類型,請運行以下腳本:
「」 中為文件擴展名,別忘了把原有的擴展名加上。
靜態文件壓縮:
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions 「htm」 「html」 「txt」 「doc」 「ppt」 「xls」
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions 「htm」 「html」 「txt」 「doc」 「ppt」 「xls」
動態文件壓縮:
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions 「asp」 「aspx」 「asmx」 「dll」 「exe」 「php」
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions 「asp」 「aspx」 「asmx」 「dll」 「exe」 「php」
將site#替換為該 Web 站點的 ID。Web 站點的 ID是什麼到「日誌記錄屬性」中看一下日誌記錄的「日誌文件名」前面的路徑就知道了。
運行以上腳本前務必備份,運行後再次執行「IISReset」使生效.
㈣ PHPnow如何開啟apache的gzip功能!阿帕奇是2.0版本!安裝網上的說法都無法成功開啟!!
一、打開PHPnow 文件下的 php-5.2.12-Win32 文件夾,找到 php-apache2handler.ini配置文件,
打開它並找到zlib.output_compression = Off,將
zlib.output_compression = Off
;zlib.output_compression_level = -1
修改為
zlib.output_compression = On
zlib.output_compression_level = 6
phpnow gzip 配置知識點:
1、默認phpnow是不開啟zlib壓縮輸出的,要把zlib.output_compression=Off 設置為On,即off改為on
2、zlib.output_compression默認值為Off,你可以將其設置為On,或者output buffer size(默認為4k)
3、zlib.output_compression_level代表壓縮比,默認推薦設置壓縮比值為6,可選范圍為1-9,-1代表關閉php zlib(gzip)壓縮
二、保存 php-apache2handler.ini 配置文件,並重啟apache , 打開PnCp.cmd 執行23 就可以了
Ok。。就這么簡單。到這里gzip功能就開啟了
如果你用的不是phpnow ,而是自己手機配置的php環境
那麼你要修改的就是php文件夾下的php.ini文件了
修改完後,還要比phpnow多一步。如下
打開apache 配置文件httpd.conf,配置裝載deflate_mole
這一步是最關鍵的開啟php gzip壓縮輸出配置步驟,很多站長會說我已經開啟了php.ini配置文件中的php gzip配置怎麼還是沒有實現php gzip壓縮,就是因為沒有讓apache裝載deflate_mole,方法如下,將
#LoadMole deflate_mole moles/mod_deflate.so
去除開頭的#號,並重啟apache即可。
㈤ 關於關閉phpwind8.7的Gzip的問題.
用ftp軟體登陸,找到指定文件目錄,打開文件修改要修改的內容即可,慢慢找,找的到的。多網路
㈥ phpcms v9 關閉Gzip功能或者取消此函數的應用在哪設置修改啊
install_package\caches\configs 到這個目錄找到system.php ,打開後找到gzip選項,後面的1,改為0.上傳覆蓋。然後你需要重新安裝一次。
㈦ wordpress優化怎麼開啟GZIP壓縮
方法一、通過修改index.php文件開啟Gzip壓縮
下載Wordpress網站根目錄index.php文件到本地,用專業網頁或代碼編輯軟體打開編輯,請勿使用系統自帶的記事本。填的時候注意標點符號,需英文狀態輸入。
在打開的index.php
中找到:
define(』WP_USE_THEMES』,
true);
在後面加上:
ob_start(『ob_gzhandler』)
這種方法最簡單,推薦使用。不過有個弊端,就是當wordpress系統升級後需要重新設置。
方法二、通過.htaccess啟用Gzip壓縮
如果你的網站空間或伺服器支持.htaccess文件,那麼在wordpress根目錄的.htaccess中添加以下代碼,然後上傳到wordpress根目錄即可。
用FTP軟體登陸Wordpress博客網站目錄。
右鍵.htaccess文件-編輯,打開.htaccess文件。在最後面加上第3點中介紹的兩種代碼中的任意一種。
實現gzip壓縮代碼有兩種具體如下:
第一種:php_value
output_handler
ob_gzhandler
第二種:
<IfMole
mod_expires.c>
ExpiresActive
On
ExpiresByType
image/gif
A2592000
ExpiresByType
image/jpeg
A2592000
ExpiresByType
image/png
A2592000
ExpiresByType
image/x-icon
A2592000
ExpiresByType
application/x-javascript
A604800
ExpiresByType
text/css
A604800
</IfMole>
<IfMole
mod_deflate.c>
SetOutputFilter
DEFLATE
AddOutputFilterByType
DEFLATE
text/html
text/css
image/gif
image/jpeg
image/png
application/x-javascript
</IfMole>
方法三、通過php.ini
啟用Gzip壓縮
如果伺服器支持php.ini重定義的話,可以在php.ini中增加以下代碼來開啟gzip。
zlib.output_compression_level
=
number
其中number為1—9的值,1的壓縮比率最低,
建議取5。
方法四、安裝gzippy插件開啟Gzip壓縮
下載Gzippy插件(下載地址見參考資料。),點wordpress後台的安裝插件-上傳-選擇文件-現在安裝,安裝完成後啟動插件即可。
方法五、利用WP
Super
Cache緩存插件自帶功能開啟Gzip壓縮
已安裝WP
Super
Cache緩存插件的朋友,可以在WP
Super
Cache設置-高級選項中勾選Compress
pages
so
they』re
served
more
quickly
to
visitors.(Recommended)一項,這樣也可以開啟Gzip壓縮。不過勾選這個選項可能導致網頁亂碼。
方法六、Cpanel控制面板的空間開啟Gzip壓縮
使用Cpanel面板的空間如果伺服器支持,可以在Cpanel後台設置開啟網站Gzip壓縮。在Cpanel面板的軟體欄目-優化網站中進行設置。點優化網站後,選擇壓縮所有內,然後更新設置。
查看Gzip是否開啟成功
選擇以上任一適合自己的方法設置好之後,大家可以到Gzip壓縮檢測網頁(見參考資料)進行測試,看看wordpress
Gzip壓縮有沒有成功。祝你成功。以下是本人博客的Gzip檢測圖-Gzip壓縮已開啟:
注意事項及說明
如果在.htaccess文件中禁止了gzip功能的話,那在php.ini文件中開啟後也需在.htaccess文件中開啟gzip,否則沒有效果。
開啟wordpress的gzip功能後,伺服器將在頁面傳輸前將頁面壓縮後傳送,可以有效減少伺服器的帶寬使用,也可以加速頁面下載。
另外請注意只能選擇一種方式來開啟wordpress
gzip壓縮,否則有可能造成沖突,請謹記。
㈧ PHP靜態頁面GZIP壓縮亂碼問題
如果在php.ini中已經設置zlib.output_compression = On再程序中再使用gzencode()壓縮就會出現亂碼. 二者只可使用一個,同時使用相當於壓縮了兩次,瀏覽器訪問只解壓一次,看到的就是亂碼了
㈨ 如何用PHP實現頁面的GZIP壓縮輸出
第一步,你需要對php的設置如下:
php.ini: output_buffering = Off output_handler = ob_gzhandler zlib.output_compression = Off zlib.output_compression_level = -1
第二步,你需要在apache下增加如下設置:
AddOutputFilter DEFLATE html php js css
這樣就可以對html php js css進行gzip壓縮了。
第三步,你需要使用如下php壓縮html並輸出到客戶端的函數:
function compress_html($string) { return ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'), array(">\\1<",'','','','','','><'),$string))); }
上面的這個正則表達式,很強大的哦,經過我本人親自測試可使用。
通過以上方法,你就可以將你的html代碼壓縮然後輸出給客戶端了。不信你可以查看源代碼,就是一行,網頁瞬間壓縮很小。
㈩ php curl採集,伺服器gzip壓縮返回數據怎麼辦
一般伺服器不會胡亂返回gzip壓縮的數據,一般是客戶端請求的頭部里包含你瀏覽器能接受的壓縮方式,
Accept-Encoding:gzip,deflate,sdch
這里是gzip 、deflate、sdch這三種方式,這里不一一說明是指什麼,不懂的可以去找谷哥度娘,
有些伺服器強制返回gzip壓縮的數據,我們採集的時候,返回的是亂碼,根本無法讀取使用,這個時候馬上查看手冊
發現其實curl里有個參數,curl_setopt($ch, CURLOPT_ENCODING,'gzip');
手冊解釋:
CURLOPT_ENCODING HTTP請求頭中"Accept-Encoding: "的值。支持的編碼有"identity","deflate"和"gzip"。如果為空字元串"",請求頭會發送所有支持的編碼類型。
只要加上這句就OK了