web-dev-qa-db-ja.com

gzipを有効にする方法は?

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

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

それに何か関係があるのか​​はわかりません。しかし、それは私の最初の質問です、2番目に、私はjavscriptファイルをホストしているdropboxを持っています、そしてそのファイルをgzipで圧縮することは可能ですか?

28
mcbeav

Ob_gzhandlerで試しましたか?

phpマニュアル

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

ヒント:Webが圧縮されて送信されているかどうかを検出するのが非常に難しい場合がありますおよび56kb圧縮。

または、.htaccessで

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

Dreamhostの公式wikiでは、これを 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%に減少するはずです。

Googleでクイック検索すると、この問題に対処する別の Stackoverflowのスレッド an in サードパーティ サイトを見つけることができます。

6
pablasso

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/

5
Kamlesh

Apacheレベルでエンコードを有効にするために必要なことは、

_zlib.output_compression = 1 // the PHP.ini file
_

これにより、サーバーは必要な要求ヘッダーのチェック、圧縮、関連ヘッダーの送信を行います

ob_start()の前のPHPファイルで

_ini_set("zlib.output_compression", 1);
_

そして、Apacheに静的リソース(例:.jsファイル、.cssファイル)を圧縮させるには、 Kamlesh が彼の答えでしたように

5
Accountant م

##まず、Gzipを有効にするためにWHM(サーバー)設定を変更する必要があります。その後、cPanel設定を変更します##

  1. WHM設定の場合=> Easy Apache =>完全なオプションリスト<here enable-deflate tab>

  2. CPanel設定の場合=> Sofware/Services => Optimize Website <ここでオプションを選択します>

3
vinod

圧縮は2つの方法で実行できます。

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

  • mod_deflateは設定が簡単で標準です。
  • mod_gzipはより強力なようです:コンテンツを事前に圧縮できます。

Deflateは高速で動作するため、使用します。ボートが浮いている場合はmod_gzipを使用します。どちらの場合でも、Apacheはブラウザーが「Accept-encoding」ヘッダーを送信したかどうかを確認し、ファイルの圧縮バージョンまたは通常バージョンを返します。ただし、一部の古いブラウザでは問題が発生する可能性があり(以下を参照)、これを修正するために追加できる特別なディレクティブがあります。

.htaccessファイルを変更できない場合は、PHPを使用して圧縮コンテンツを返すことができます。HTMLファイルに.php拡張子を付け、このコードを先頭に追加します。

PHPの場合:

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

「Accept-encoding」ヘッダーを確認し、ファイルのgzip圧縮バージョン(通常のバージョン)を返します。これは、独自のWebサーバーを構築するようなものです(楽しい!)。しかし、実際には、Apacheを使用して出力を圧縮してみてください。あなたは自分のファイルで猿になりたくない。

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

1
Avi Tyagi