WordPress のアップグレードついでに、 WP Super Cache プラグインのアップグレードもしてみた。
WP Super Cache 0.99 アップグレード
面倒なので SSH で作業しています。
1. 最新版の解凍
http://wordpress.org/extend/plugins/wp-super-cache/installation/
のページから Wp Super Cache の 0.99 を拾ってくる。
# cd wordpress/wp-content/plugins # mkdir tmp/ # cd tmp/ # wget http://downloads.wordpress.org/plugin/\ wp-super-cache.0.9.9.zip # unzip wp-super-cache.0.9.9.zip # chown -R www:www wp-super-cache/
以下のディレクトリ構成で考えます。
wordpress/ └ wp-content/ └ plugins/ ├ wp-super-cache/ ( 現在動いている WP Super Cache ) └ tmp/ └ wp-super-cache/ ( 解凍した最新版 )
2. 設定ファイル ( アップグレードの場合は変更済みのはずなので、不要 )
# cd /public_html/wordpress/ # vi wp-config.php
以下の 2 行を追加するが、追加する位置に注意。
// WP Super Cache Manager define('WP_CACHE', true); if ( !defined('ABSPATH') ) ※ この行より上に記述
3. Wp Super Cache プラグインの無効化
管理画面から「停止する」。
4. 古いバージョンとディレクトリを交換
# cd wordpress/wp-content/plugins/ # mv wp-super-cache/ wp-super-cache.bak/ # mv wp-super-cache.bak/ tmp/ # mv tmp/wp-super-cache/ ./
5. Wp Super Cache プラグインの有効化
管理画面から「使用する」。
6. Wp Super Cache の設定 1
プラグイン設定画面に入って設定。
細かいことは忘れてしまったが、「 wp-content を 777 にしてくれ」的なエラーが出たので、その通りにしてみた。
# cd wordpress/ # chmod 777 wp-content/
このあと、プラグイン設定画面を再読み込みさせたらエラーが消えたので、多分どっかのディレクトリに何らかのファイルを作成したのだろう。 .htaccess あたりかな?
wp-content ディレクトリのパーミッションを元に戻しておく。
# chmod 755 wp-content/
設定内容だが、ほとんどデフォルトで設定した。
- オン WP Cache と Super Cache を使用する
- キャッシュリビルド。新しいファイルの生成中に supercache ファイルを匿名ユーザーに提供します。とてもたくさんアクセスとたくさんのコメントがつくサイトにおすすめします。”ダイレクトキャッシュページ”と “ロックダウンモード” はサポートされなくなります。
- Mobile device support using WordPress Mobile Edition. ( これにチェック入れただけ )
「ステータスを更新」ボタンをクリック。
次のような警告が出た。
———-
Rewrite rules must be updated
The rewrite rules required by this plugin have changed or are missing. モバイルサポートには .htaccess ファイルにルールを追加する必要があります。もしくはプラグインをハーフオンモードに設定します。次のオプションがあります (難しい順):
- ハーフオンモードに設定し、モバイルサポートを使用します。
- /public_html/wordpress/.htaccess 内の # BEGIN WPSuperCache と # END WPSuperCache で囲まれたこのプラグインの mod_rewrite ルールを削除して、ページを再読込みしてプラグインに再生成させてください。
- RewriteCond %{HTTP_user_agent} 以下略
———-
このエラーがでるのは、古いバージョンからアップグレードするときだけで、新規に WP Super Cache を入れたときには出ないはず。
対処方法は、 1 番目が簡単そうだったが、 2 番目のやり方をやってみた。
# cd wordpress/ # vi .htaccess
# BEGIN WPSuperCache ← この行から ほげほげ ( なんて書いてあったか忘れた。古い記事を見れば… ) # END WPSuperCache ← この行までを削除 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /bloody-mary/wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /bloody-mary/wordpress/index.php [L] </IfModule> # END WordPress
簡単な方法としては、# END WPSuperCache の行までカーソルを持っていき、
d1G
と続けてキーボードから入力することで、「その行から 1 番目の行まで」削除される。
あとは
:wq
と入力して保存する。
ブラウザに戻って再読み込みしてみると、警告は消えた。
7. Wp Super Cache の設定 2
次に、 Mod Rewrite ルールの警告を何とかする。
前の手順での再読み込み後に、 Mod Rewrite ルールのところを見ると、以下の警告が表示されている。
- 静的 html ファイルを利用できるようにするには、お使いのサーバーで /public_html/wordpress/.htaccess と呼ばれるファイルに正しい mod_rewrite ルールが追加されている必要があります。 このファイルをご自分で編集して次のルールを追加する必要があります。かならず WordPress の既存のルールの前に入れてください。
- # BEGIN WPSuperCache
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteBase /bloody-mary/wordpress/
- AddDefaultCharset UTF-8
- RewriteCond %{REQUEST_METHOD} !POST
- RewriteCond %{QUERY_STRING} !.*=.*
- RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$
- RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).*
- RewriteCond %{HTTP:Accept-Encoding} gzip
- RewriteCond %{DOCUMENT_ROOT}/public_html/wordpress/wp-content/cache/supercache/%{HTTP_HOST}/bloody-mary/wordpress/$1/index.html.gz -f
- RewriteRule ^(.*) /public_html/wordpress/wp-content/cache/supercache/%{HTTP_HOST}/bloody-mary/wordpress/$1/index.html.gz [L]
- RewriteCond %{REQUEST_METHOD} !POST
- RewriteCond %{QUERY_STRING} !.*=.*
- RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$
- RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).*
- RewriteCond %{DOCUMENT_ROOT}/public_html/wordpress/wp-content/cache/supercache/%{HTTP_HOST}/bloody-mary/wordpress/$1/index.html -f
- RewriteRule ^(.*) /public_html/wordpress/wp-content/cache/supercache/%{HTTP_HOST}/bloody-mary/wordpress/$1/index.html [L]
- </IfModule>
- # END WPSuperCache
- ルールは /public_html/wordpress/wp-content/cache/.htaccess にも追加する必要があります:
- # BEGIN supercache
- <IfModule mod_mime.c>
- <FilesMatch "\.html\.gz$">
- ForceType text/html
- FileETag None
- </FilesMatch>
- AddEncoding gzip .gz
- AddType text/html .gz
- </IfModule>
- <IfModule mod_deflate.c>
- SetEnvIfNoCase Request_URI \.gz$ no-gzip
- </IfModule>
- <IfModule mod_headers.c>
- Header set Vary "Accept-Encoding, Cookie"
- Header set Cache-Control 'max-age=300, must-revalidate'
- </IfModule>
- <IfModule mod_expires.c>
- ExpiresActive On
- ExpiresByType text/html A300
- </IfModule>
- # END supercache
Apache から .htaccess の書き込み権限があれば、書き込みボタンを押すだけで OK。
書き込み権限がなければ、上記内容を自分で追加する。
こんなカンジで終了。のはず。