Mod_deflateを実行しました。 Apacheサーバーにsome.txtファイルを投入し、curlを使用してチェックアウトできます。
curl --compressed -I /somefile.txtは、圧縮された次の結果を返します。
Vary: Accept-Encoding
Content-Encoding: gzip
しかし、/ some.phpを使用すると、次のようになります。
Accept-Ranges: bytes
X-Powered-By: PHP/5.4.4-14+deb7u5
しかし、Content-Encodingはありません:gzip、.htaccessは複数のオプションで使用しました:
SetOutPutFilter DEFLATE
または
AddOutputFilterByType DEFLATE application/json
また、php.iniでzlib圧縮がオフになっているかどうかを確認し、出力バッファーをオフに設定しようとしました。しかし、何を試しても、Apacheによってphp出力が圧縮されることはありません。 ApacheからZipへのオーバーヘッドは、php zlibを使用する場合よりも少なくなります。
CSS/JSでは動作するが、PHPでは動作しないApache出力圧縮 のような十分な投稿がありますが、これによりphpからの圧縮が可能になります。 Apacheで処理してほしい。
ここにはばかげた何かが欠けているに違いない。
UPDATE:与えられた回答のため、私はすべての問題を解決しました。結局、それはまだ100%機能しませんでした。これは、間違ったパッケージがインストールされたことが原因でした。 Apache2filterが使用され、間違ったパスで私を送りました。
AddOutputFilterByType
は、出力フィルターチェーンにアイテムを追加するための非推奨の方法です( ref here ):
もう1つのディレクティブAddOutputFilterByTypeはまだサポートされていますが、問題がある可能性があり、現在は非推奨です。代わりに動的構成を使用してください。
また、PHPは、DEFLATEフィルターを含まない1つのフィルターチェーンに関連付けられているため、問題が発生する可能性があります。
mod_filter の新しい構文をFilterChainとともにこの質問で 示されているように使用してみることができます (in答えではなく質問)。
この問題が発生し、.htaccessとhttpd.confでmod_deflateオプションを設定すると、結果が異なることに気づきました。 httpd.conf設定は、PHP fastcgiまたはDSOとして実行された場合に機能しました。htaccessファイルでは、PHP Fastcgiを実行できなかったため、 deflateディレクティブ。
.htaccessの代わりにhttpd.confにルールを記述して問題が解決するかどうかを確認してください(変更を加えた後、Apacheを再起動することを忘れないでください)。
これを試して、うまくいくかどうかを確認してください:
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp