W3 Total Cache導入後に500 Internal Server Errorに出くわした時の対処メモ

2014年4月7日プラグイン以外のカスタマイズ

今もうひとつブログ作ってるので
早速そちらにも昨日と同じ高速化設定を施そうとしたのですが、
管理画面を行ったり来たりしてるうちに
頭の中がゴッチャになって「500 Internal Server Error」になりました(^^;

解決したのでメモ残しときます。

問題発生までの経緯と状況

  1. タブを切り替えながらこちらのブログの設定を参照し、新ブログのW3 Total Cache設定
  2. たぶんPage CacheとBrowser Cacheの設定ページを混同した(←まぬけ)
  3. 500 Internal Server Errorでブログの表示も管理画面の表示も不能

対処法

.htaccessを書き換える

FileZillaで見た.htaccessのありかFileZillaとかでルートの.htaccessを開きます。
大体のサーバーではpublic_htmlの直下にあると思います。

miやWindowsならメモ帳などのテキストエディタで

  • # BEGIN W3TC Browser Cacheと# END W3TC Browser Cache
  • # BEGIN W3TC Page Cache coreと# END W3TC Page Cache core

に挟まれている箇所をバッサリ削除します。
ちなみに私の環境で削除した文字列は

# BEGIN W3TC Browser Cache


Header append Vary User-Agent env=!dont-vary

AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json

# DEFLATE by extension
AddOutputFilter DEFLATE js css htm html xml


# END W3TC Browser Cache
# BEGIN W3TC Page Cache core

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} (android|aspen|bada|blackberry 9780|blackberry 9800|blackberry 9850|blackberry 9860|blackberry9500|blackberry9520|blackberry9530|blackberry9550|cupcake|dream|froyo|iemobile|incognito|ipad|iphone|ipod|pixi|pre|s8000|webmate|webos) [NC]
RewriteRule .* - [E=W3TC_UA:_high]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_UA}.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_UA}.html%{ENV:W3TC_ENC}" [L]

# END W3TC Page Cache core

でした。
結構書き込まれてますね。

.htaccessのパーミッション変更

これでエックスサーバーのセキュリティ設定から
国外IPアクセス制限を解除して(Cloud Flareを使ってるので)
PHPのバージョンを5.3.3に戻したら(なぜか古いバージョンに切り替わってた)
めでたく管理画面が表示されるようになったのですが、
安心したのも束の間、すぐに画面が真っ白になりました。

.htaccessが上書きされて、さっき削除した文字列がまた復活してたんですね(笑)

なので権限を一時的に変更しておきます。
くだんの.htaccessファイルのパーミッションを、444にしときましょう。

設定ひと通り済ませてからパーミッション元に戻す

これでようやく作業できるようになりました。
今度は間違えないよう気をつけながら設定をひと通り済ませます。
正式オープン前で良かった(;´∀`)

設定が終わったら、.htaccessのパーミッションを644に戻しておきます。
これで無事に動くようになりました。

管理画面は色分けしとこう

今回はタブを切り替えながら設定を見比べてるうちに
ブログを間違えて設定してしまったのが原因でした。

現在のWordpressでは管理画面のカラーを変えられるので、
ブログごとに色を変えておけばこんなミスも防げたかもしれないなー、
と反省してます(^-^;

管理画面の配色管理画面のカラー変更は、

ユーザー→あなたのプロフィール

から設定できます。

参考
W3 Total Cacheが.htaccessを書き換えて500 Internal Server Error|WordPressもAndroidもiPhoneも大好き!
W3 Total Cacheをインストール後、[500 Internal Server Error]と表示されてブログにも管理画面にもアクセスできない問題の対処法【WordPress】 | しゃこメモ