やっと直せた… こんな思いで現在記事を書いています。
プラグインの不具合の怖さを思い知らされました…(といっても不具合の中でも軽い方だったとは思うが、素人の自分には難解でした…)
W3 Total Cacheの500エラー
WordPressのページ表示速度を劇的に早くする事ができて便利なプラグイン『W3 Total Cache』
使用されている方も多いと思いますが、実は不具合で500エラーになってしまうケースが自分だけでなく多々あるようなのです。
主な原因はW3 Total Cacheが、設置したホームページの.htaccessに不具合の出るような書き込みをしてしまうのが問題なようです。(正直細かい部分までは分かりません。自分素人なので失敗だらけですから! ドクター(ry)
不具合原因の細部までは分かりませんが、試行錯誤して直した方法を紹介させていただきますので参考にしてみてください。
なぜ直すのに手間取ったのか
「500エラー?そんなものググればすぐに直し方書いてあるでしょ!!」
確かにそうなのです。なのですが、実はW3 Total Cacheの500エラーに関して書かれている記事の内容が少し違っていたりするので、
「え…どっちが正しいんだ…怖い…触れない!!」と怯えていたのです。
ちなみに今回参考にさせて頂いた神ブログ様(ありがとう…ありがとう…)はコチラ
W3 Total Cacheの500エラーで悩んだらまずはこの二つのブログを徹底的に読んだ方がいいです。
細かい不具合の原因なども書かれています。
ただ、問題点を挙げるとするならばこの両方のブログ、書かれていることが違うということ。
「え?若干内容が違うけどどっちが正しんだ!?」
もし自分にプログラミングの知識があれば応用効かせて答えに辿り着くのでしょうが、そんな専門知識もない。
単に書かれている手順に従って進む以外に手段がないため迷ってしまったのです。
両ブログの違い
基本的には.htaccessの編集をしてその後、wp-config.phpの編集。 さらにW3 Total Cacheのアンインストール(既に管理画面にすら入れない状態なので直接フォルダを削除)という流れは同じなのですが、.htaccessの編集に関して書かれている内容が違うのです。
具体的には、寝ブログ様の内容では.htaccessの削除項目は『# BEGIN W3TC Page Cache core~# END W3TC Page Cache core』まで
対してネタワン様のブログでは『# BEGIN W3TC Browser Cache~# END W3TC Browser Cache』まで。
Page CacheとBrowser Cacheの違い。
ここでどちらが正解なのか分からなくなってしまったのです。
しかも他のブログには、”挟まれている文字列を消す”と書いてあるものあり、「え?# BEGIN W3TC Page Cache coreという文字列は消さない方がいいの??」などなど知識のない自分には訳が分からなかったのです。
具体的な方法
では実際に自分が行って500エラーを直した方法を紹介します。ちなみに、紹介させて頂いたブログは内容が違う。とありましたが、自分の場合両方行いました。
まずネタワン様のブログから
初めに行ったのはネタワン様のブログの修正方法から。
『# BEGIN W3TC Browser Cache~# END W3TC Browser Cache』までを消去するという方法です。
自身はサーバーはエックスサーバーを利用しています。これは単純に様々なアフィリエイター様が使っていて、速度も速くサポートもしっかりしているためです。
そのエックスサーバーの場合、管理画面のファイルマネージャーという項目から該当するブログ→public_html→.htaccessと進んでいくとFTPソフトを使わなくてもそのまま直接編集できます。
なので問題とされる部分をまず消去しました。
まずはこんな画面になると思います。エックスサーバーに関わらず各サーバーでファイルマネージャーは操作できると思います。
この状態から該当する(W3 Total Cacheが不具合を起こしたであろう)サイトをクリック。
そこからpublic_htmlをクリックして先に進みます。
すると『.htaccess』という項目があり、W3 Total Cacheがここに加えた変更点を削除することで500エラーを直すのです。
そして必ず編集前に.htaccessのバックアップを取っておきましょう。
エックスサーバーの場合.htaccessをクリックするだけで保存画面が出るはずです。
本来はダウンロードした.htaccessをテキストエディタなどで編集し、再度この項目にアップロードするのですが、直接編集ができたので、.htaccessの横にチェックを付けて編集ボタンを押します。
するとプログラムの文字列が出てくるので、その中から『# BEGIN W3TC Browser Cache』と『# END W3TC Browser Cache』を探します。
Windowsの場合などは『Ctrl+F』できちんと確認した方が良いです。
ちなみに自身の場合は
<IfModule mod_mime.c>
AddType text/css .css
AddType text/x-component .htc
~中略~
</IfModule>
</FilesMatch>
# END W3TC Browser Cache
このような文字列でした。
中略と書いてありますが、30行ぐらいと相当文字列は長かったです。
そしてこの文字列を#の文字列も含めてすべて削除します。
初め、保存のための文字コードをShift_JISはUTF-8かで分からなくなりましたが、デフォルトのShift_JISのままやりましたが特に問題ありませんでした。
ただFTPソフトでダウンロード後に編集する場合はUTF-8の方が良いようです。
その後、今度は『wp-config.php』という項目も編集します。
W3 Total Cacheはこのwp-config.phpにも編集を加えるプラグインのようですね。
同じように編集画面を開き、
define(‘WP_CACHE’, true); // Added by W3 Total Cache
という部分を削除します。
※編集前に『wp-config.php』も必ずバックアップを取りましょう。
Added by W3 Total Cacheと書かれている部分はW3 Total Cacheが書き加えたもので、1つだけではない人もいるようです。
自分の場合はこの項目だけでしたが。
書かれているのは1番上に書かれていましたが、もし見つからなければ探してみてください。
そしてその後、プラグインとして入れられている『W3 Total Cache』の名前の変更を行います。
名前を変更することでwordpressとのリンクが切られるようですね。
この『plugins』の中に『W3 Total Cache』があると思うので、名前を変えましょう。基本的にはなんでも良いようです。
どうせアンインストールするので嫌いな上司の名前でも付ければいいと思います。
『○○ W3 Total Cache』でもなんでもいいようです。
ちなみに自身の場合、真っ先にpluginsの中からW3 Total Cacheを削除してしまいました(笑)
「こいつが原因だーーーー!!消えてなくなれ!!」
と悪の帝王バリに消し去りましたが、結局500エラーは直らず。
なので名前の変更は行っていません。
そしてその後、自身が行ったようにpluginsからW3 Total Cacheを削除。
ひとまずここまでで一回500エラーが復旧しているかかくにんすることに…すると
やったぜ
なんだよちくしょう…エラーの直し方のブログの中には # BEGIN W3TC Browser Cacheの項目を削除すればいいと書かれているものだってあるのに…
ということで色々見直してみることに。
するとネタワン様のブログの中で、
wp-contentの下にあるadvanced-cache.phpと同じ階層にあるw3tc-configを削除する。というのも書かれていました。
しかしこれは、寝ブログ様の方にも書かれていたので、どうせなら寝ブログ様の方法もやってみようと路線変更(吹っ切れた)
寝ブログ様の方法
寝ブログ様で紹介されている方法は.htaccess内の『 BEGIN W3TC Page Cache core~# END W3TC Page Cache core』という項目を削除する方法。
ネタワン様とこの部分が異なるのですが、両方やってみることに。
同じく.htaccess内の
<IfModule mod_rewrite.c>
RewriteEngine On
~中略~
</IfModule>
# END W3TC Page Cache core
この部分を先ほどと同じように削除します。
試しにこの状態でサイトにアクセスしてみると…今度は白地に(笑)
良く見てみると上に文字が書かれており、
W3 Total Cache Error: some files appear to be missing or out of place. Please re-install plugin or remove /home/○○/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/○○/DOMAIN/public_html/wp-content/object-cache.php
このように書かれていました。
これはそれまで存在していたW3 Total Cacheとの関係性の断たれたシステムファイルがエラーを起こしている(勝手にそう思っている)と考えます。
そこで対処を行うことに。
方法は簡単で、public_htmlの下の wp-contentの中にある 『advanced-cache.php』と
同じように『db.php』と『object-cache.php』を削除します。
そして寝ブログ様のブログとネタワン様にも書かれていた『w3tc-config』というフォルダも削除
そして再度サイトに戻ってみると…
なんとまだ文字が書かれている…
どうやら元々入れていた『SlimStart』というプラグインの事が書かれていたので、一旦プラグインから削除することに。
すると…
これで何とかサイトが復活しました。
本当に焦った…
まとめ
今回自分が行ったのは、寝ブログ様とネタワン様のブログのハイブリット。
基本的には.htaccessを編集して、余計な項目を消す。ということなのですが、
『# BEGIN W3TC Page Cache core~# END W3TC Page Cache core』までと# BEGIN W3TC Browser Cache~# END W3TC Browser Cache』の両方を消したということが大きく違います。
もしかするとW3 Total Cacheの設定によっては片方しかないということがあるかもしれませんが、その辺は状態を確認してみてください。
そして、
w3tc-config
advanced-cache.php
db.php
object-cache.php
それぞれの消去。
本来はここで500エラーが解消されているケースが多いようですが自分の場合はなぜかSlimStartが反応してしまったのでそれもプラグインから削除。
これが今回行った一連の流れです。
プラグインの不具合に関しては基本的にはサーバー側は面倒を見てくれません。
なので復旧までに丸一日使ってしまい、その間アクセスが無くなったと考えると痛いですね…
それにW3 Total Cacheに変わるプラグイン探さなきゃ…また同じのを使うのはちょっと怖いな…
コメント