2011-01-17 10 views
22

私はgzipを有効にする方法に関するチュートリアルをいくつか見つけましたが、何も私のために働いていないようですので、私の質問はgzipを有効にする方法です。私は共有Dreamhostサーバー上で、それはPHPのバージョン5.2を実行している、とApache、私はこの行を発見したPHP情報から、多分これは助けることができますか?gzipを有効にするには?

zlib 

ZLib Support enabled 
Stream Wrapper support compress.zlib:// 
Stream Filter support zlib.inflate, zlib.deflate 
Compiled Version 1.2.3.3 
Linked Version 1.2.3.3 

Directive Local Value Master Value 
zlib.output_compression Off Off 
zlib.output_compression_level -1 -1 
zlib.output_handler no value no value 

また、私は、この行は、それはそれとは何かを持っている場合、私は知らない

_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 

を発見しました。しかし、それは私の最初の質問です、第二に、私は、javascriptファイルをホストしてdropboxを持って、私はそれがgzippedファイルを持っている可能性があります、それは圧縮されて転送されていない、そうそうする方法はありますか?

+0

は何をGZIPをしたいですか? PHPのgzip関数を使用しますか? Webサーバーの出力を圧縮しますか?後者の場合は、 'mod_deflate'をインストールし、何か問題や質問があれば[serverfault.com](http://serverfault.com)を試してください。 – netcoder

答えて

43

あなたはob_gzhandlerで試してみましたか?

php manual

<?php 
ob_start("ob_gzhandler"); 
?> 
<html> 
<body> 
<p>This should be a compressed page.</p> 
</html> 
<body> 

ヒント:時々ウェブは圧縮された送信であるかどうか、私はFirefoxのFirebugのプラグインを使用して、私は圧縮せずに圧縮してPHPファイルをテストし、サイズを比較するかどうかを検出することはかなり難しいです、私の場合、差は1MB(非圧縮)と56KB圧縮でした。 Dreamhostのの公式のwikiで

またはあなたの.htaccessで

<IfModule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css   application/x-javascript application/javascript 
</IfModule> 
+0

スタイルシートとjavascriptについてはどうですか?私はそれがもっと.htaccessのものになると考えていました。私はこれを試みます。 – mcbeav

+0

私が見る限り、それは私に結果を与えていないことがわかります。 – mcbeav

+0

<? PHP ob_start( "ob_gzhandler"); header( "Content-type:text/css"); ?> .... – magallanes

5

彼らはmodifying an htaccessすることによって、これを有効にします。

<IfModule mod_gzip.c> 
    mod_gzip_on  Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file  \.(html?|txt|css|js|php|pl|jpg|png|gif)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime  ^text/.* 
    mod_gzip_item_include mime  ^application/x-javascript.* 
    mod_gzip_item_exclude mime  ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</IfModule> 

これは基本的にmod_czip.cが発見されたかどうかを確認するためにチェックした場合それはあなたのためにファイルを圧縮するので、ブラウザに送る方が速いです。これはおそらく、ダウンロード時間を35〜40%短縮し、ファイルサイズは55〜65%になるはずです。あなたはこの問題に対処するthird partyサイト内の別のthread on Stackoverflowを考え出すことができるGoogleでクイック検索で

+0

これは非常に古いです。 Apache 2では代わりに 'mod_deflate.c'を使うのが最善です。 – VSG24

+0

'jpg/png/gif'のようなファイルをインクルードし、後でmime' image /.* 'でそれらを禁止します。本当に私には意味がありません。 – mgutt

2

##まず、WHM(サーバー)設定を変更してGzipを有効にする必要があります。それは## WHMの設定について

  1. =>簡単にApache =>徹底的なオプションリスト<を設定するcPanelの中​​に変更を行った後、ここで有効 - cPanelの設定についてはデフレートタブ>

  2. => Sofwareを/サービス=>こちらのウェブサイト<を最適化し、あなたが何をしたいオプションを選択>

3

Apacheでは、出力圧縮を有効にするのはかなり簡単です。あなたの.htaccessファイルに次の行を追加します。

# compress text, html, javascript, css, xml: 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/xml 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/x-javascript 

# Or, compress certain file types by extension: 
<files *.html> 
SetOutputFilter DEFLATE 
</files> 

出典:http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

+0

http://www.giftofspeed.com/enable-gzip-compression/ – Kamlesh

1

圧縮は、2つの方法で行うことができます。

Apacheは、実際に2つの圧縮オプションがあります。

  • mod_deflateをを設定することが容易と標準です。
  • mod_gzipより強力です:コンテンツをあらかじめ圧縮することができます。

Deflateはすばやく機能するので、私はそれを使用します。それがあなたのボートを浮かせるならmod_gzipを使ってください。どちらの場合でも、Apacheはブラウザが「Accept-encoding」ヘッダーを送信したかどうかをチェックし、ファイルの圧縮バージョンまたは正規バージョンを返します。しかし、古いブラウザの中には(以下を参照)問題があるものもあれば、これを修正するために追加できる特別な指示があります。

.htaccessファイルを変更できない場合は、PHPを使用して圧縮されたコンテンツを返すことができます。 PHPで

<?php if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’)) 
ob_start(“ob_gzhandler”); else ob_start(); ?> 

我々はチェック(ヘッダ「をコードする、受け入れる」とファイルのgzipで圧縮されたバージョンを返しますが、そうでない場合は、あなたのHTMLは拡張子.phpファイルと先頭にこのコードを追加与えます通常版)。これはあなた自身のWebサーバーを構築するのとほとんど同じです(楽しい!)。しかし、本当にあなたが助けることができるなら、あなたの出力を圧縮するためにApacheを使用しようとします。あなたはあなたのファイルで猿をしたくありません。

参考:http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

0

私は、Apacheのレベルでのエンコーディングを有効にしなければならなかったすべてが

zlib.output_compression = 1 // the PHP.ini file 

これは、必要なリクエストヘッダのチェックは、圧縮しないサーバーを行いますされ、関連送りますヘッダー

あなたもPHPファイルでこれを行うことができますob_start()

ini_set("zlib.output_compression", 1); 

とApacheは、静的リソースを圧縮するようにする(例えば:.jsファイルのファイル、.cssファイル)がKamleshが彼の答えで行ったように

関連する問題