modpagespeedをインストールしてページの表示時間を短縮する
modpagespeedとは
以下の動画を見てもわかるとおりソースコードなどを最適化して
ページ表示を高速化してくれるGoogleが出しているApacheモジュールである
自分の環境でmodpagespeedを導入して表示スピードを比較してみる
インストール方法を説明する前に導入後スピードが本当に早くなっているのか
modpagespeedの導入前,導入後の実験を5回ずつしてキャプチャを撮ってみた。
(スピードを比較するためにpingdomというwebサービスを使った)
キャプチャを見ていただくと分かるが表示スピードが導入前と導入後を比較して
最大で約2倍のスピード差があることが確認できた。
インストール方法
https://developers.google.com/speed/docs/mod_pagespeed/build_from_source
上記URLの通りソースからインストールする方法で今回はやってみた。
上記ページに書いてある通りやったが一応順番に自分が行ったことを
まとめる。
Prerequisites
この章はすでに自分の環境では構築されていたので
飛ばす。
Install the Chromium Depot Tools
1行目に「We require the Chromium depot_tools, which are used to build open-source projects with dependencies on other open-source projects.」書かれているとおりdepot_toolsというツールが必要らしいので書かれているコマンドをそのまま実行。
svnを使ってチェックアウトしている
$ mkdir -p ~/bin $ cd ~/bin $ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
上記のコマンドの後にdepotツールにパスを通すために以下のコマンドを実行
export PATH=$PATH:~/bin/depot_tools
Check out mod_pagespeed and dependencies
mod_pagespeedをダウンロードするためにmod_pagespeedようのディレクトリを作り
mod_pagespeed関連の処理をそのディレクトリで行う。
$ mkdir ~/mod_pagespeed $ cd ~/mod_pagespeed
そしていよいよダウンロードするのだが本家のページでは(自分なりの解釈で)
安定した最新版をダウンロードするか安定していない最新版かダウンロードするか
選択する感じだったので、今回安定版をダウンロードすることにして以下のコマンドを
実行した。
ちなみにgclientコマンドはdepot_toolsの一つらしい。
$ gclient config http://modpagespeed.googlecode.com/svn/branches/latest-beta/src $ gclient sync --force --jobs=1
Run Tests
この章では自分の環境でmod_pagesが動くかテストを行なう。
とりあえず本家ページの説明されたとおりとおりに以下のコマンドを実行するが
自分の環境ではmake(コンパイル)で失敗した。
$ cd ~/mod_pagespeed/src $ make BUILDTYPE=Release mod_pagespeed_test pagespeed_automatic_test #ここで自分は失敗
自分の場合失敗した原因は「gperf」コマンドが無かったのが原因だったのでyumでインストールした。
# yum -y install gperf
もしかたしたら人によってはgperf以外で環境がきちんと出来ていない場合があると
思うのでその時は適宜エラー内容から必要なものを揃えれば大丈夫だと思う。
(Prerequisitesの章でgperfをインストールしなければ行けなかったが構築されていると
gperfが必要なことを見落としていたのが悪かった。
Prerequisitesできちんと必要なものをインストールしましょう)
もう一度先程のコマンド(以下のコマンド)を行うとうまくいった。
$ cd ~/mod_pagespeed/src $ make BUILDTYPE=Release mod_pagespeed_test pagespeed_automatic_test #ここで自分は失敗
その後テストを行うが自分の場合2つ目のテストのコマンドが
なんかうまくいかなかった部分があったみたいだが特に問題ないと
勝手に判断してテストを終了した。
$ ./out/Release/mod_pagespeed_test $ ./out/Release/pagespeed_automatic_test
Compile
以下のコマンドでmod_pagespeedをReleaceバージョン(本番環境)用でコンパイル
$ cd ~/mod_pagespeed/src $ make BUILDTYPE=Release # BUILDTYPEのデフォルトは'Debug'
Install
以下のコマンドでインストールするのだが本家ページのやり方では
うまくいかなかったので./install_apxs.shをスーパーユーザーになって
sh ./install_apxs.shで実行した。
#本家ページのやりかた $ cd install $ ./install_apxs.sh #自分のやりかた $ cd install # sh ./install_apxs.sh
しかし本家ページでもこのコマンドの後の説明にもある通り
yumからではなくソースからコンパイル&インストールしたとき
yumの時とパスが異なっていると思うのでその時はapxsへのパスを
きちんと説明しなければいけないので以下のコマンドをやるといいらしい。
APXS_BIN=/usr/local/exampleapache/bin/apxs ./install_apxs.sh
ちなみに自分は別の環境ではapacheを最新版でインストールするとき
CentOSにApache 2.4.1をインストールする
や技術手引き書
などを参考にして構築しているのだが、その環境ではapxsはyumでインストールしたときと異なっている。
上記の「# sh ./install_apxs.sh」(自分の環境の場合)が終わるとmod_pagespeedがインストールされ、
httpd.confにインストールされたpagespeed.confが読み込まれるようになっていた。
Update
mod_pagespeedをアップデートするときここを読むのだろうが、
今回は関係ないと思い飛ばす。
Build Packages
この章もインストールすることが目的だったのでパッケージ化はしない。
(パッケージ化をしたことがなく今はそこに学習コストを書ける必要はないと判断しただけ)
Debug CSS
これも飛ばした
Other Systems
これも飛ばした
インストール後の設定
色々設定すればもっと最適化出来るのだろうが、とくにインストール後
設定をいじることなく最初に挙げたスクリーンショットを見る限りでも
最高で2倍の差で表示スピードが早くなっているので今はこれでOKということに
しておこうと思う。
まとめ
とりあえずmod_pagespeedをまだ使っていなくて、
ページ速度の表示を早くしたいのであればとりあえず
mod_pagespeedをインストールしよう!