W3 Total Cache利用で500エラーが出たときの対処法

昨日、WordpressプラグインのW3 Total Cacheの設定をいじっていました。

で、いろいろな設定を変更して「設定の保存」ボタンをクリックした途端に500エラーが。

XSERVERの500エラー

この500エラーは、全ページで表示され、管理画面でも完全にエラー画面しか表示されなくなりました。

こうなると、管理画面から設定を元に戻してリカバリーすることもできません。

ただ、FTPソフトとテキストエディターを利用することで何とか復帰することができたので、その方法の紹介です。

スポンサーリンク
レクタングル(大)広告

500エラーから復帰する主な手順

今回僕は、以下の手順を行うことで何とかW3 Total Cache(以下、W3TC)のエラーから元に戻すことができました。

  1. .htaccessにW3TCが記述した部分を削除
  2. wp-config.phpにW3TCが記述した部分を削除
  3. W3TCプラグインの削除
  4. wp-content内にW3TCが生成したフォルダとファイルの削除

僕が利用しているエックスサーバーでは、FTPソフトを利用して、上記の手順で、エラーメッセージも出ないように復帰することができました。

FTPなどの設定方法がよくわからない場合は、以下などを参照してください。

セキュリティーは、低いよりは高くしておくに越した事はありません。今回は、SFTPという接続方法を利用して、FTPよりは安全に...
先日、FileZillaでエックスサーバーにSFTP接続する方法を書きました。「なぜFTPがあるのに、SFTP接続す...
Wordpressテーマのスタイルをちょっと編集したい時、どのようにしていますか?例えば、テーマのスタイルをちょっと書き換え...

以下では、上記手順について詳しく書きたいと思います。

.htaccessにW3TCが記述した部分を削除

W3 Total Cacheプラグインを利用すると、.htaccessファイルの内容に追記する形で設定を書き込みます。

今回、僕のサイトで500エラーが出たのも、おそらくW3 Total Cacheが.htaccessファイルに書き込んだ設定が原因だったと思われます。

なので、今回のような「サイト全体が500エラーになった」なんて症状の場合は、W3 Total Cacheが書き込んだ設定部分を削除してやると、ある程度症状は改善されるかと思います。

.htaccessファイルとは、多くのWEBサーバーで利用されている「Apache(アパッチ)」を制御する設定ファイルの1つです。とにかく非常に大事なファイルで、この設定を誤ると即500エラーなどが出てサイトが表示されなくなってしまうファイルです。

PHPと違って、ブラウザ上にエラーメッセージも出ないため、僕も含む.htaccessファイルの編集に慣れていない人が編集するには細心の注意が必要です。ですので、編集の前に必ず.htaccessファイルのバックアップを取っておいてください。

W3TCが書き込んだ.htaccess内の記述の削除方法

.htaccessは、一般的なサーバーであれば、public_htmlにあるかと思います。

エックスサーバーのディレクトリ構造で説明すると、以下のような位置にあります。

XSERVERでの.htaccessの位置

/home/サーバーID/ドメイン/public_html/.htaccess

public_html内にある.htaccessファイルを一旦ダウンロードしてテキストエディターで開きます。

そして中にある、以下のような記述を削除して保存してください。

# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_USER_AGENT} (android.*mobile|bb10|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry9800|cupcake|dream|incognito|iphone|ipod|mobile.*firefox|opera mini|webmate|webos|windows.*phone) [NC]
    RewriteRule .* - [E=W3TC_UA:_high]
    RewriteCond %{HTTP_COOKIE} w3tc_preview [NC]
    RewriteRule .* - [E=W3TC_PREVIEW:_preview]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{QUERY_STRING} =""
    RewriteCond %{REQUEST_URI} \/$
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
    RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_PREVIEW}.html" -f
    RewriteRule .* "/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_PREVIEW}.html" [L]
</IfModule>
# END W3TC Page Cache core

.htaccess内の「# BEGIN W3TC Page Cache core」から「# END W3TC Page Cache core」までをエディターで削除してしまいます。

編集が済んだ.htaccessをFTPでサーバー上の同じ場所に上書きアップロードしてください。

.htaccessを修正すると、ブラウザ上では500エラーだけは解消される場合がほとんどだと思います。(他でPHPのエラーは出てるかもしれないけど)

なお、大事なことなのでもう一度書きますが、.htaccessの編集に失敗するとApache設定に慣れていない場合は、元に戻せないこともあるかと思います。なので、.htaccessファイルは、編集前にコピーして複製するなどして、バックアップを取っておくことをおすすめします。

wp-config.phpにW3TCが記述した部分を削除

W3 Total Cacheは、Wordpressなどの設定情報が書かれているwp-config.phpにも追記する形で編集を加えます。

この、W3 Total Cacheがwp-config.phpに加える編集も元に戻します。

wp-config.phpも重要なファイルなので、事前にコピーするなどしてバックアップを取っておいてください。

W3TCが書き込んだwp-config.php内の記述の削除方法

wp-config.phpは、Wordpressのインストールフォルダ直下にあります。

僕の利用しているエックスサーバーだと、先程の.htaccessと同じpublic_htmlにあります。

XSERVERでの.htaccessの位置

/home/サーバーID/ドメイン/public_html/wp-config.php

FTPソフトでwp-config.phpをダウンロードして、テキストエディターで開いてください。

そして、中にある以下のような記述を削除して保存してください。

/** Enable W3 Total Cache Edge Mode */
define('W3TC_EDGE_MODE', true); // Added by W3 Total Cache

/** Enable W3 Total Cache */
define('WP_CACHE', true); // Added by W3 Total Cache

その他にも、エディターの検索機能などで「Added by W3 Total Cache」という記述がないかを探して、あれば削除してください。

編集が済んだwp-config.phpをFTPでサーバー上の同じ場所に上書きアップロードしてください。

W3TCプラグインの削除

とりあえずこれでW3 Total Cacheプラグインは削除してしまっておいた方が良いかと思います。

なので、FTPでWordpressプラグインフォルダ内にある「w3-total-cache」フォルダも削除してしまいます。

エックスサーバーだと、以下のような位置にあります。

XSERVERでWordpressプラグインフォルダの位置

/home/サーバID/ドメイン/public_html/wp-content/plugins/w3-total-cache

FTPソフトで「w3-total-cache」フォルダを削除してしまいます。

W3 Total Cacheプラグインフォルダの削除

wp-content内にW3TCが生成したフォルダとファイルの削除

僕は上記の方法で十分と思っていたのですが、Wordpress管理画面にはまだ以下のようなエラーメッセージが出ていました。

W3 Total Cache Error: some files appear to be missing or out of place. Please re-install plugin or remove /home/XXXXXXXXX/DOMAIN/public_html/wp-content/advanced-cache.php .

W3 Total Cache Error: some files appear to be missing or out of place. Please re-install plugin or remove /home/XXXXXXXXX/DOMAIN/public_html/wp-content/db.php .

W3 Total Cache Error: some files appear to be missing or out of place. Please re-install plugin or remove /home/XXXXXXXXX/DOMAIN/public_html/wp-content/object-cache.php

    何かまだ、W3 Total Cacheがwp-contentフォルダ内に生成しているファイル等があったようです。

    エックスサーバーでのwp-contentフォルダの位置は以下になります。

    XSERVERでwp-contentの位置

    /home/サーバID/ドメイン/public_html/wp-content

    この、wp-contentフォルダ内にある以下のファイルとフォルダをすべて削除してしまいます。

    • w3tc-config(フォルダ)
    • advanced-cache.php
    • db.php
    • object-cache.php

    これらファイルを削除すると、管理画面上でもエラーが出なくなると思います。

    ファイルを削除しても管理画面上でエラーメッセージが出ている場合は、エラーメッセージを参考にファイルを削除してください。

    まとめ

    とりあえず、僕の環境(W3 Total Cache0.9.4.1+エックスサーバー)では上記の方法で、500エラーを解消することができました。

    ちなみに、データベースにはW3 Total Cacheの設定情報が保存されているので、再度プラグインをインストールすると、エラーが出ます。ですので、再びW3 Total Cacheを利用するには、データベース上で設定情報の削除が必要になるかもしれません。

    ただ、とりあえず今回は500エラーからの復帰方法ということでこの辺で。

    もし、ページキャッシュプラグインを使用する必要があるのであれば、エラーの出る恐れのあるW3 Total Cacheを利用するよりも、他のプラグインを使ったほうが手っ取り早いかと思います。

    『W3 Total Cache利用で500エラーが出たときの対処法』へのコメント

    1. 名前:田舎村 投稿日:2016/09/27(火) 18:51:56 ID:8b98d5649

      昨日(9/26)、「W3 Total Cache」を「0.9.4.1」から「0.9.5」へバージョンアップしたら「500エラー」が発生しました。
      管理画面もサイトもエラー表示で白紙状態。
      私はlolipopを使用していますが、この記事を参考にして、「W3 Total Cache」を削除し、正常に戻すことが出来ました。

      正常に戻った後は、新しいバージョンをインストールしたら正常に働いています。

      「W3 Total Cache」のバージョンアップは、旧バージョンを完全削除して、その後に新バージョンをインストールするのが良いように思えています。

    2. アバター画像 名前:わいひら 投稿日:2016/09/28(水) 17:46:55 ID:d2b9048f9

      そうなんですか。
      僕はまだアップデートしてなくて助かりました。とりあえず、ローカルで一度動作を確かめてから、アップデートしてみたいと思います。
      教えていただきありがとうございます!

    3. 名前:石版 投稿日:2016/11/28(月) 22:30:02 ID:62c4835e3

      助かりました!

      僕は、Wordpressの更新時に500エラーが出てしまいまして
      滅茶苦茶悩んでいたのですが、こちらの記事でスムーズに解決することが出来ました!

      これからも参考にさせて頂きます。

      ちなみに、わいひらさんは、「W3 Total Cache」削除後
      どのような対策をされていますか?

      よろしければ教えてください。

    4. アバター画像 名前:わいひら 投稿日:2016/11/28(月) 22:48:59 ID:c6d72d680

      記事がお役に立てたようでよかったです。

      僕の場合は、WP Fastest Cacheを利用しています。
      初心者にも扱いやすいWordpressキャシュプラグイン「WP Fastest Cache」の使い方
      ただ、これは有料版を利用しないと、モバイルでキャッシュは生成されません。
      そのW3 Total Cacheで500エラーの出たサイトは、パソコンからの流入が8割以上だったので、無料版で特に問題はなかったのですが、モバイル流入が多いサイトだと無料版では厳しいかもしれません。

    5. 名前:ジェイ 投稿日:2017/02/08(水) 06:51:45 ID:ee54db84a

      本当にこのプラグインが無事消せてよかったです!
      ありがとうございます!

    6. アバター画像 名前:わいひら 投稿日:2017/02/08(水) 22:09:37 ID:018862269

      記事がお役に立ったようで良かったです!
      ページキャシュプラグインソフトは、たまに牙をむきますからね…;

    7. 名前:スコーフ 投稿日:2017/03/13(月) 10:32:57 ID:8450e58ef

      W3 Total cacheの悪影響と知れて助かりました。

      ただ、W3 Total cacheを停止するだけで
      .htaccessファイルのW3 Total cacheの部分も消えていました。
      (見間違えかもしれませんが・・・)

      削除する前に、停止→有効化で動くか確認した方が良いかもしれませんね。

    8. アバター画像 名前:わいひら 投稿日:2017/03/13(月) 17:22:04 ID:6c3f068df

      検索で調べてみても、何かの拍子にW3 Total Cache(他のページキャッシュプラグインも)が突然牙をむく事は結構あるようです。

      管理画面からW3 Total Cacheを停止すれば、.htaccessの記述部分は削除されると思います。
      ただこの記事で書いたのは、W3 Total Cacheのエラーのせいで、管理画面にすら入れない場合の対処法だったりします。
      僕はそれを経験したんですが、管理画面にすら入れないと、かなり焦ります^^;

    9. 名前:はつかり 投稿日:2017/08/14(月) 02:28:23 ID:52a47280c

      情報ありがとうございます!

      私もこの記事の事例と同様、管理画面にエラーメッセージがのこっており、
      それだけならまだ良かったのですが、
      投稿画面の内部リンクや画像参照が機能しないという、謎の不具合が起きて困ってました。

      そこで、この記事に書いてあるとおり、
      wp-contentフォルダ内のdb.phpファイルを削除したところ、無事治りました。

      とても助かりました。
      有益な記事をアップしていただき、ありがとうございます。

    10. アバター画像 名前:わいひら 投稿日:2017/08/15(火) 12:51:13 ID:90ca0a55a

      復旧できたようでよかったです。
      W3 Total Cacheが牙をむいてエラーになったときは焦りますよね;
      記事がお役に立てたのであれば、嬉しく思います。