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で圧縮することは可能ですか?
Ob_gzhandlerで試しましたか?
<?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>
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 サードパーティ サイトを見つけることができます。
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/
Apacheレベルでエンコードを有効にするために必要なことは、
_zlib.output_compression = 1 // the PHP.ini file
_
これにより、サーバーは必要な要求ヘッダーのチェック、圧縮、関連ヘッダーの送信を行います
ob_start()
の前のPHPファイルで
_ini_set("zlib.output_compression", 1);
_
そして、Apacheに静的リソース(例:.jsファイル、.cssファイル)を圧縮させるには、 Kamlesh が彼の答えでしたように
##まず、Gzipを有効にするためにWHM(サーバー)設定を変更する必要があります。その後、cPanel設定を変更します##
WHM設定の場合=> Easy Apache =>完全なオプションリスト<here enable-deflate tab>
CPanel設定の場合=> Sofware/Services => Optimize Website <ここでオプションを選択します>
圧縮は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/