ノロマだったWordPressがNginx+SuperCacheで超高速化!GTmetrixで1秒台を叩き出す為に行った施策

海外のDreamHostというサーバを使ってWordPressでアダルトブログをやっている友人がいるのだが、サイトの表示が遅すぎてユーザが離れていかないか心配・・・なんとか高速化したいんだけどなんとかなんないかいね〜という相談を受けた。

サイト自体はまだそんなにアクセスは無く、1日1万PVぐらいで、サーバの契約はDreamHostのVPS契約、転送料無制限のメモリ1GBで月々50$程払っているらしい。

僕はhetemlとかロリポの共用サーバしか使った事が無かったので、VPSで月50$も払ってるならさぞかしページもサクサクでそんな言うほど遅くないだろうと思っていたが、これがまたもっさりしている・・・。

おそるおそるGTmetrixで計測してみたら読み込みに20秒くらいかかっておる・・・信じられない遅さです。

あんまりサーバ周りは詳しくないので僕の技術でWordPressを高速化してあげられるのか自信は無かったのですが、プラグイン周りを整理してNginxにするだけでGTmetrix1秒台まで高速化出来たので、その手順を書いておきます。日本でDreamHostを使っている方は少数だと思いますが、使われている方がいたら参考にしてみてください。

現状調査

とりあえず現状を調査。サーバはDreamHostのVPS(メモリ1G)。WordPressは最新の3.5.1で、高速化対策として「W3C Total Cache」「MO Cache」「DB Cache Reloaded Fix」プラグインを導入。

■サーバー
・DreamHost VPS(メモリ1GB)/1month
・Apache

■WordPress
・バージョン 3.5.1
・W3C Total Caceh + MO Cache

施策1 いらないプラグインの調査と撤去

「P3」プラグインで重いプラグインを探し出せ!

まず始めに目がついたのがプラグイン多すぎ。

20個以上のプラグインが入っていました・・・。なにやらPVを表示さしたり、headをクリーンしたり、関連記事を出したり・・・と色々やりたい事が多かったらしく、それに対応する為にプラグインを導入しまくっていました。

とりあえずいらなそうで重いプラグインを「P3(Plugin Performance Profiler)」というプラグインのパフォーマンスを調査出来るプラグインで調査。

使い方は割愛しますが、WordPressのプラグインなので普通にインストールして使えます。プラグインの設定画面で以下のようにグラフで表示してくれるので非常に分かりやすい。※添付画像は参考画像なので別のサイトのものです。それにしても「HeadClear」って結構パフォーマンス喰うんですね。友達のそのサイトにも入っていたので外しました。

2

その後もいらないプラグインをガシガシ削除して、最終的に10個程度になりました。高速化として入れていたW3C Total Cacheとかもこのサイトでは役に立っていなさそう(W3Cはサーバに結構負荷が掛かるらしいですね)なのでとりあえず全てとっぱらいました。

施策2 ApacheからNginxへ変更

ここが最大の難関でした・・・。Nginx + WordPressが超早いという噂は前々から聞いていたのですが、いかんせん今まで共用サーバでぬるま湯に浸かっていた為、サーバの設定をいじくる知識が皆無なのです。

とりあえずDreamHostの設定を見回して、サーバの設定を変えられる箇所を発見!
「VPS」の「Configure Server」の中にHTTP ServerをApacheからNginxに切り替えるスイッチ発見!あら、こんなに簡単に切り替えられちゃうのかしら

3

プルダウンを「Nginx」に設定して一番下にある「Save」ボタンを押すと、設定が変わった模様。しばらく時間置いて待ってみてねというメッセージが出るので、10分後くらいにアクセスしてみると、無事にWordPressで作ったブログがそのまま表示されるではありませんか!しかも結構表示が早い!えっ?こんなんに簡単なんだ〜へへ〜とか思っていると・・・投稿が開かない。。。開くとNginxエラーが出ておる

世の中そんなに甘くありませんでした。

NginxでWordPressのパーマリンクを使う方法

気を取り直して調べてみると、WordPressでパーマリンク設定をしている場合、Nginxに切り替えたらApacheのmod_rewriteが使えなくなる為、.htaccessでのパーマリンク設定が効かなくなるとの事。なるほどそうかぁ。

パーマリンクが使えない事にはお話にならないので、引き続きnginxでパーマリンクを設定する方法を探してみると、すぐにDreamhostのwikiにたどり着き、設定方法発見!!

wikiの内容を見たところ…

ここに設定ファイル「wordpress.conf」ってのを作ればいいらしい。

しかし、ここでまたつまづいたんだけど、「nano」ってなに???

nanoというのは、Linux(サーバ)に付いてるテキストエディタ、らしい。※違ったら教えてー
コマンドで最初にnanoって打つとそのテキストエディタが開いて.confファイルを開いてくれるんだって!

MacのターミナルでSSH接続してwordpress.confを作ってみることに。

久々に起動したターミナル・・・コマンドも覚えてないのでググりながら。
あ、ドットインストールのUNIXコマンド入門がかなり分かりやすいでした。

まずはdreamhostにsshで接続。****は自分のユーザ名。

パスワードを聞かれるので入力。入力してもパスワードって表示されないんですね。

サーバに入れたー!

「ls」コマンドでディレクトリを表示。
「/home/YOURUSER/nginx/example.com/wordpress.conf」
てあったから、今いる「YOURUSER」の階層に「nginx」ディレクトリを作ります。
ディレクトリを作るには「mkdir」+好きなフォルダ名ですね。

ディレクトリを作ったら「cd」コマンドでnginxディレクトリに移動。

次に自分のサイトURLのディレクトリも作成して****.jpディレクトリに移動。

****.jpディレクトリに移動したら、ここで「nano」コマンドを入力!

変な画面に変わりました!これがnanoエディタというやつかー
で、ここにさっきのDreamhostのwikiを参照しながら、パーマリンクする為のコードを入力。

あ、ちなみに上記のでもいいのですが、WPSuperCacheも入れたかったのでこっちのコードを入れました。ちょいコードが長いのでコードはリンク先でご確認くだされ。

で、コードを入力したら「control+w」を押します。したらFile Name toとか聞いてくるので「wordpress.con」と入力…

で、Enterを押すと、wordpress.conが保存出来ました!
保存したら「control+x」でnanoを抜け出しましょう。
抜けたら「ls」したらファイル出てくると思いますね。

これでパーマリンクする為のwordpress.confが出来たので、上手く投稿が表示されていればOK。
サイトを見ると…

表示されたーーーー!

上手くリライトされてますね!成功です!
しかも結構表示が早い、このままでも使えそうな感じ。

施策3 WP SUPER CACHEの導入

とりあえずキャッシュも入れておきたいので、WP SUPER CACHEを導入。W3C Total Cacheはこのサーバに合っていないのか、かなり遅かったのでやむなく解除。なんかWP SUPER CACHEって更新が止まってると思ってましたが、「Last Updated: 2013-4-24」になってる。最近も更新されとるんですな。

WP SUPER CACHEの設定は…

・キャッシュファイルの提供に PHP を利用する。
・ページを圧縮し、訪問者により速くページを供給する。 (推奨)
・既知のユーザー向けにはページをキャッシュしない。 (推奨)
にチェックを入れたぐらいですね。

で、ページにアクセスしてみると、
ページ表示メッチャ早くなっとる!!WordPressが激早に生まれ変わりました!!Nginx+WP SUPER CACHEスゲーーー!

GTmetrixで計測

最後にGTmetrixで速度計測!

4

出た「1.72 seconds」!!!!
あ、キャプチャ撮るの忘れてたので、上の画像は今日撮ったやつなので参考までにのせました^^;
当初は1.72だったのです、本当です。

5

GoogleAnalyticsの速度計測のとこで見ても、Nginx+WP SUPER CACHEに変えてからは安定して表示速度が改善しています。

長い記事になってしまいましたが、DreamhostでWordPressをお使いの方は是非Nginx+WP SUPER CACHEをお試し頂ければと思います。