mod_deflateその後

2014-01-05-20-05-56

 

某店でWindows Vista Basicのステッカーが50円だったので買ってきました。確かにロゴの印字が荒く感じたり全体的に右寄りでバランス悪く感じたり値段相応のチープさだけどこれはこれで。

脈絡のない前置きはさておき、Apache 2.2.26でmod_deflateをONにするとWordPressの投稿画面でメディアライブラリがうまく動かない問題は、PHPによって吐き出されたHTMLのレスポンスヘッダにContent-Encoding: gzipが付与されていないことが原因だった。.jsや.cssは圧縮されている扱いになっておりHTMLだけが圧縮されていないことになっていた。

php.iniで zlib.output_compression の項目をOnにしたら無事HTMLにレスポンスヘッダにContent-Encoding: gzip が付与されてめでたしめでたし。メディアライブラリも無事動いて画像を選択、挿入できるようになった。しかし

スクリーンショット 2014-01-05 23.47.28

と圧縮されているけれど倍率がx1なのが気になる。OS X 10.9上で SetOutputFilter DEFLATE だけ記述しmod_deflate有効にした時はHTMLもx4くらい圧縮されていたのに。また後ほど調査。

まとめ

※インストール時に必要なモジュールを含めていることを前提
Locationディレクティブでdeflate無効にする必要はなかった

・httpd.conf (Apache 2.2.26)
deflate_moduleが読み込まれているか確認
<ifModule mod_deflate.c>はIncludeでextraにある設定ファイルを読み込んでいく前に記述した

LoadModule deflate_module libexec/apache22/mod_deflate.so

=== 中略 ===

<ifModule mod_deflate.c>
    SetOutputFilter DEFLATE
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
</ifModule>

・php.ini (PHP 5.4.23)
項目があればOnに、なければ記述

zlib.output_compression = On

 

参考文献

mod_deflate – Apache HTTP サーバ
http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

実用 Apache 2.0運用・管理術(4):mod_deflateによるコンテンツの圧縮転送 (1/3) – @IT –
http://www.atmarkit.co.jp/ait/articles/0510/07/news107.html

Now Browsing: 改行削除するくらいなら gzip したらいいじゃない | WWW WATCH
http://hyper-text.org/archives/2012/11/webcontents_gzip.shtml