WPのキャッシュプラグインQuick Cacheクイックキャッシュの設定など

9 分で読めます。投稿から 7年。最終更新から 1年経過。
この記事の作成に約 133 分かかりました。

Word Pressユーザーの間ではWP Super Cacheというプラグインがキャッシュさせるプラグインとして人気ですけど、sitemixではいまいちうまくいきませんでした。適当に動くようにパーミッションも変えた気がするのですが結局エラーが出て使えませんでした。セーフモードの警告も出ていたので、WordPress System Healthで調べたららsitemixではRemote open FilesとPHP Safe Modeがonになっていました。

なのでQuick Cacheというのを入れてみました。プラグインのマニュアルを読むと、後発だけあってWP Super Cacheとの比較やこっちが優れている点なども書かれていてなんだか良さそうです。誰かがアクセスした時点で静的ファイルを生成し、設定した時間の間に再びアクセスがあったらそれを見せるというスタンスです。
*静的ファイルを表示するので、動的生成を生かしたプラグインなどは正常に機能しなくなります。例えば、記事のアクセスをカウントしてリアルタイムにランキングを表示するプラグインなどです。

プラグインをインストールして有効化ボタンを押してサイドバーに出る設定ページに行くと、wp-config.phpのパーミッションを755以上にしてくれとの警告が出ます。755はだめで777にしたらOKでした。wp-content内にキャッシュフォルダができるはずなのでそれも777にしておきます。もしできていなければ手動でcacheという名で作りましょう。また、wp-content内にadvanced-cache.phpという設定用ファイルが生成されているはずです(このファイルは設定をいじるたびに書き換えられます)。って感じでこのプラグインはsitemixでも普通に動きました。

インストールしたら

ログインしている人はキャッシュを見せてくれない設定なので、違うブラウザを使ったりログアウトしてblogのいくつかのページにアクセスします。そしてblogにアクセスしてソースを見ると一番下に有効期限とともにQuick Cacheの署名もされるので一応可動していることが一目でわかります。また、cacheフォルダにURLごとのファイルがきちんと生成されていたなら正常稼動している証です。

設定について

何か1つでもいじるにはwp-config.phpの属性を777にする必要があります。ある程度自分でいじってみて、もう設定は変えないと思ったら、wp-config.phpの属性は通常の604とか404あたりに戻しておきます。

プラグインの設定は色々いじることが出来ますが、基本的に変えなくても動きます。好みに変えるのは少しの項目しかありませんが、どの設定にもこっちがRecommendedされた設定ですよと書かれています。そしてなぜそうなのか詳しく書かれています。なのでそれに従うのが良いでしょう。ブラウザのキャッシュを有効にするかも選べますが、無効が推奨されています。キャッシュファイルのクリアはログインすれば右上にボタンが出るのでいつでもできます。また、個別記事を編集した際にどの程度のキャッシュをクリアするかも選べますが、そのままだとその個別記事とメインページのキャッシュが新しく作られます。プラグインの設定をいじると溜め込まれたキャッシュは競合を避けるために全部クリアされます。

変える可能性が高いのはCache Expiration Time(キャッシュを保持する秒数)、Browser Cache(ブラウザのキャッシュ機能を使うかどうか)あたり、そして忘れてはいけないのがDon’t Cache These User-Agent Patterns(キャッシュしない機種)という項目です。

携帯用の表示をしている際の注意点

Quick Cacheは携帯用やスマートフォン用に別のページを吐く様にしているとそれらのページもキャッシュを作成します。このプラグインはWPが動的生成するファイルのほとんどのキャッシュファイルを作ってくれるんです(たとえばRSS)。コレはコレですごいのですけど、実はコレがこのキャッシュプラグインの注意点でもあります。なぜなら、もし携帯ユーザーがKtai Styleの吐いたページのキャッシュを作ってしまった場合にパソコンユーザーまでもが、その携帯用のページを見せられれるという不具合がおきます。
これを回避するにはDon’t Cache These User-Agent Patternsにキャッシュしない機種を設定しておきます。
私はとりあえず、

w3c_validator
DoCoMo
SoftBank
WILLCOM
mixi-mobile-converter
UP.Browser
Playstation
iPhone
Android
BlackBerry
Nintendo
Nitro
PDA
Windows CE
emobile
Opera Mini
Opera Mobi
PalmOS
ia_archive
Mobile
bot
slurp

と記入しました。んで、FireMobileSimulatorで確認したら正常に機能していました。
これらはhttp://ja.wikipedia.org/wiki/ユーザーエージェントから適当に選んで記述しています。
ここにクローラーに対しての記述も可能です。googleの場合はbotと記入すればキャッシュを見せません。Fetch as Googlebotにて確認しました。ヤフーはslurpでOKだと思います。

■追記2013-04-17
クィックキャッシュのMD5に値を入れれば、携帯やスマホ専用ページのキャッシュを別に管理して表示できます。たった1行でケータイやスマホ用ページを高速化するQuick CacheのTipsにやり方書かれているのでやってみて下さい。キャッシュさせる際は上のDon’t Cache These User-Agent Patternsからはdocomoとかiphoneとかは削除してくだい。

エラーページさえキャッシュを作ってしまう

別の問題として、このプラグインはエラーページなどもキャッシュを作成してしまいます。例えば、サーバーが一時的にDBが使えなくて生成ができない場合に、「エラー:データーベースに接続できません」という表示が出る時があります。いわゆる503エラーの類です。404のページも同じです。Quick Cacheは律儀にこのようなエラーページをキャッシュして有効期限が切れるまでずっとこの表示を出していまします。更にそのページのエラーステータスをを書き換えて正常の200にしてしまうのです。どうにか改善できないか考えているんですけど、今のところ対策としてはキャッシュの保持時間を短くするくらいしか対策はありません。404は実際には問題無いですが、500系のサーバーのエラーに起因する表示を保持して表示し続くけるのは要注意です。つまりブラウザやクローラーがそのエラーページを正常なコンテンツと認識するという事態が起きるのです。なので検索エンジンがエラーと認識せずにそのままインデックスを続けます。ご注意を。だから、クローラにはキャッシュを見せないほうが良いはずです。

*他のキャッシュプラグインはエラーが出ると保持キャッシュをクリアするような機能を持っているようです。

その他の設定

ログインしたユーザーのキャッシュ設定(Logged in Users)は推奨にしたがって切っておきます。そうすれば、何か設定を変えた際にいちいちキャッシュをクリアして確認する必要がないです。さらに、この設定をしておくと最近コメントを投稿したユーザーに対してもキャッシュを見せません。このおかげでコメントを投稿した人にコメントが反映されていない古いキャッシュを見せてしまうことも防げます。非常に合理的な方法で安心です。キャッシュさせたくないアドレスや形式がある場合は、No Cache Referrer Patternsに文字列を記載することで行えます。RSSなどのキャシュを防ぎたい場合は、ここに記述します。

GZIP転送モード

転送モードがまだそのままです。Quick Cacheの設定ページでは出てきませんが、Other Notesを読むと、さらに高速化させる手段が書かれています。
それはGZIPを使うことです。これはファイルをzip圧縮した状態でブラウザに送り、BLOGをみているユーザーのブラウザが解凍して表示する方法です。これだと、転送量が少なくて済むのでサイトの高速化ができます。cssやスクリプトファイル、htmlやPHP、RSS、XMLなどをこの方法で転送する訳です。

この機能を有効にするには.htaccess に設定のための数行を書き込めば可能になります。http://wordpress.org/extend/plugins/quick-cache/other_notes/の後半にテキストエリアで表示されているのがそのコードです。


<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain
AddOutputFilterByType DEFLATE image/svg+xml application/xhtml+xml application/xml
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-otf
AddOutputFilterByType DEFLATE font/truetype font/opentype
</IfModule>

私は先頭にコピペしました。
ぜひお試しあれ。この表記はプラグインの設定を切っても有効です。

この記事はいかがでしたか?

FB:スラックラインの歩き方
NO IMAGE
Facebookでは更新情報・話題の動画等を配信中
ぜひいいねをしてチェックお願いします。

Facebook:スラックラインの歩き方

スポンサーリンク
レクタングル大
レクタングル大

GIBBON(ギボン) SKOW RELEASE

  • カテゴリ:スポーツ用品
  • 定価:¥ 6,696
  • 販売価格:¥ 5,998
スポンサーリンク
レクタングル大

コメント

  1. って、紹介しておきながらいま不具合でキャッシュが機能していません。

    プラグインなどの自動アップロードもいまエラーを起こす状態なので関係しているのかな?とほほ。

  2. どうやらtmpファイルの中にエラーを起こして削除できないフォルダが出来ていて、それでアップデートや新しいキャッシュファイルの作成が出来なくなっていたようだ。

    フォルダの乗換えをWPのバージョンも兼ねて手動でアップしたらまた動作するようになった。

  3. 設定いじったらまた使えなくなった。がっくり。

  4. 今は普通にプラグイン稼働中。
    年末年始にサーバーが不具合を起こして症状が出てたのかな?