Wordpressのパフォーマンスを10倍から1,000倍 速く(高速化)できるかもなプラグインを作った 〜 Text Cache Controller plugin

WordPressのパフォーマンスを10倍から1,000倍 速く(高速化)できるかもなプラグインを作った 〜 Text Cache Controller plugin

WordPressのパフォーマンスを10倍から1,000倍 速く(高速化)できるかもなプラグインを作った 〜 Text Cache Controller plugin

WordPressのパフォーマンスを10倍から1,000倍 速く(高速化)できるかもなプラグインを作った 〜 Text Cache Controller plugin へのコメントはまだありません

はじめに

WordPressを10倍から1000倍 速くできるかもしれないプラグインを作ったので紹介します!普通1000倍とか聞くと「うそだろーー!」とツッコミを入れられてもしかたないのですが、実際に、そのぐらい、もしくはそれ以上の結果が出ているので、あながち嘘でもないと思います。信じられない人は、騙されたと思って、一度インストールしてみてください。インストール・アンインストールともに、めちゃくちゃ簡単ですので。

初回リリースは英語版です。(日本語ローカライズ版作りました!!) そもそも、このプラグインを作ったきっかけは、Redisを使ってWordpressを超高速化するという手法を知って、実際に試したら、びっくりするほど速くなったので、本人的には満足していたのですが、この高速化手法を利用するにはRedisというインメモリーデーターベースを利用できる必要がありまして・・・。自分でサーバーまるごと、運用している場合であれば、Redisを使った手法を用いるのがベストだと思うのですが、Wordpressホスティングサービスを提供しているような業者のサイトではRedisを使うことが出来ないだろうなと思い当たりまして、じゃぁ Redisに依存しない高速化版を作っちゃおうというのが開発の動機です。動作環境はWordpressが動いている、つまりPHPが動いている環境さえあれば、Pearのライブラリーであるとか、Redis、その他のサービス等 一切依存しないプラグインですので、どんな環境でも動くはずです。

Redisを使った高速化手法については、こちらの記事を参照ください。

インストールについては、現在 WordPress.orgさんでPlugin審査中ですので、本サイトからダンロードして利用してください。(その方法も後述します。)

プラグインの機能

ページキャッシング

このプラグインを導入した後は、Wordpressを公開しているサーバーの有効なURLへアクセスがあると、そのURLへのリクエストが初めてであるかどうか(キャッシュが在るかないか)を判定して、キャッシュがなければ、Wordpressへ処理(Request)を転送し、通常通りWordpressにページ生成してもらい、アクセスしてきたブラウザー(人)へページを返します。と、同時にこっそりキャッシュファイルをサーバー上に作っちゃいます。次に同じURLにリクエストがあった場合には、Wordpressを一切介さずに、キャッシュファイルを即返します。(この処理がめっちゃ速い!)

キャッシュ全クリア

プラグインの管理画面から、既にキャッシュされているファイルを全部クリアしちゃう機能です。どのような用途に用いるかというと、ページキャッシュをしちゃうと、サイドバーなどに配置されているランキング表示であるとか、最近の投稿一覧が更新されないケースがあります。(キャッシュがかかっていてもリフレッシュされるかどうかは、利用しているプラグインに依存します。)
ランキングぐらい、多少古くても構わないのですが、新しく投稿を追加した場合などは、どのページにアクセスしてくれた人にも、そのことを通知できる方が良いので、一旦キャッシュを全部消しちゃおうという時に使います。

キャッシュ再構築

プラグインの管理画面から、投稿(Post)に対するキャッシュを再構築する機能です。
どんな時に使うかというと、キャッシュを一旦全クリアしちゃった後、ブラウザーでどのページヘアクセスしても、速度が極端に落ちます。その理由はキャッシュファイルがないから、通常通りWordpressさんにページ作成を依頼しているためです。第一印象って大事です。せっかくGoogle検索で引っ掛けてもらって、自分のサイトへ引き込んだはいいが、いつまで立ってもページが表示されない(かなり遅いという意味)では、イメージダウンです。なので、キャッシュを全部クリアしちゃった後は、公開ポストに対して1度ずつアクセスしちゃえば、キャッシュが再構築されるということになります。でも、公開ページがうん百ページある場合、手作業でブラウザーでアクセスする作業は気が遠くなります。ですので、この作業をボタンワンクリックで済ませちゃおう!というのがこの機能です。

インストール

WORDPRESS_ROOT    >>   をWordpressのルートディレクトリーと読み替えてください。

手作業によるインストール

  1. WordPressの管理画面から、新規プラグインのインストールを選択し、「Text Cache Controller」で検索してインストールしてください。といいつつ、これが可能になるのは WordPressさんのプラグイン申請を通過した後になりますので、あと1〜2週間はかかっちゃうと思います。それまでの間は、後述するDownload URLよりZipファイル(text-cache-controller-latest.zip) をダウンロードして、プラグイン管理画面の新規追加画面で、アップロードを選んで、本プラグインをインストールしてください。
  2. プラグイン管理画面で、「有効化」してください。これでダッシュボードの「設定」の中に本プラグイン「Text Cache Controller」を選択できるようになります。
  3. WordPressのルートフォルダにある index.phpファイルをコピーして、名前をoriginal_index.php とします。
  4. 本プラグインフォルダにある index-textcache.php というファイルを WORDPRESSのルートフォルダに index.php という名前でコピーします。(上書き)

以上です。簡単でしょ。

コピーの部分も自動化しても良かったのですが、権限の関係とかでトラブっても困りますし、内部で何が行われているか理解できないと、使ってくださる方も不安かもなと思って、この部分は手作業で行ってください。

コマンドラインでインストールする方法

プラグインのインストール自体は、上記の方法で行ってください。
インストール後、ファイルをコピーする部分をコマンドでやるとこんな感じですよというのを示しておきます。

ダウンロード

text-cache-controller-latest2.zip

スクリーンショット

プラグイン管理画面 on WordPress

設定項目はわずか2つだけで、非常にシンプルです。
1つは、コントローラ名。これはセキュリティを考慮してキャッシュするフォルダ名を変更するための設定です。
もう1つは、動作モード。出力されるログを簡易なものにするか、詳細なものにするかの設定です。トラブルが起こった時などは詳細モードにして、ログを閲覧すると原因がわかるかもしれません。もしくはこのページの投稿欄にでも、ログの内容を貼り付けていただければ、何らかのアドバイスが可能となります。

あとは、キャッシュを全てクリアするためのボタン。キャッシュを再構築するためのボタンがあります。

その他、インストールの完了ステータス。(上記のindex.phpのコピーがちゃんとできているかどうかなどをチェックし、その結果を表示します。)、簡易なインストールマニュアルが表示されます。

sc-1

パフォーマンスの改善度合い(実際に運用している環境のもの)

本プラグインが出力したログファイルのスナップショットです。

1000倍ぐらい速くなってるでしょ?

screenshot-2

これは、たった今、運用しているサイトから引っこ抜いたログです。
運用サーバーが非力であるということはしょっぴいても、10秒オーバーとかありえないっすよね。Wordpressさん。
キャッシュが効いてたら、0.001秒 ぐらいですからね。何倍ですかね・・・

キャッシュ再構築

キャッシュ再構築機能です。Wordpressの管理画面から、キャッシュ再作成を実行すると、キャッシュ再作成用のPHPページを自動的に生成しちゃいます。
そのURLが表示されるので、ブラウザーでそのURLへアクセスし、ボタン1クリックで、キャッシュが再作成できちゃいます!

screenshot-3

動作確認

プラグインの仕様として、リンク経由でアクセスがやってきたときはキャッシュを使います。ブラウザーでF5キーや再表示ボタンを押した場合は、キャッシュを用いずにWordpressに処理を転送します。

注意点

WordPressにログインしている場合は、一切キャッシュしません。 理由は、Wordpressの管理バーの表示されたページがキャッシュされては困る。加えて、新規投稿後に何度も確認作業を行ったりすると思います。その際にキャッシュが効いてしまっては、確認しづらいので、とにかくWordpressへログイン中はキャッシュしません。

もちろん、自分がログインしていても、他の方、つまり別PCからのアクセスはキャッシュが効きます。また、自分でキャッシュの効果を体感したいときなどは、Wordpressからログオフする。もしくは、別のブラウザーで確認、もしくはプライベートブラウズモードなどを使うと良いと思います。

Redisが使えるなら

もし、Wordpress運用環境でRedisのインストールができちゃうなら、Redisを使った高速化方法の方をおすすめします。
このプラグインでも問題ないとは思いますが、インメモリデータベースの方が速いには速いですから・・・

英語なら jeedoさんのサイトを直接見に行ってください。
http://www.jeedo.net/lightning-fast-wordpress-with-nginx-redis/
日本語がお好みなら、jeedoさんのサイトを訳+追記しましたので、こちらを参照ください。
http://beautifulajax.dip.jp/?p=667

信頼性について

まだ作ったばかりですので、100%の出来ではありません。ただ、エラー処理はふんだんに埋め込んであり、不慮の事故でエラーが発生した場合は、処理をWordpressに転送する仕組みになっていますので、このプラグインを導入したからといって、不都合になるようなことはまずないと思います。最初の導入と10分前後のテストさえクリアすれば、以降は快適なキャッシングシステムで、Wordpressを高速化できちゃうと思います。

アンインストール

  • WORDPRESS_ROOTにある index.phpを元々のindex.php(original_index.phpとリネームしたもの)に戻す。
  • WordPressのプラグイン設定画面より、このプラグインを削除

以上


About the author:

Related Posts

Leave a comment

Back to Top