WordPressで画面が真っ白なときの回復方法 +予約投稿の失敗防止

WordPressを利用していると、本体やプラグインを更新するタイミングってそこそこありますが、その後画面が真っ白になったり、よくわからないエラーのようなものが2行くらい書かれている画面になったりする……というのを過去2度ほどやらかしました。 いやこれ……ほんと……吐きそうになるね!! でも案外わかってしまえば対応ができるので、ちょっと書いておきます。

Warning: require_once(/******/web/wp-content/plugins/db-cache-reloaded-fix/db-module.php) [function.require-once]: failed to open stream: No such file or directory in /******/web/wp-content/db.php on line 94

Fatal error: require_once() [function.require]: Failed opening required ‘/******/web/wp-content/plugins/db-cache-reloaded-fix/db-module.php’ (include_path=’.:/usr/local/php5.3/php’) in /******/web/wp-content/db.php on line 94

こんなん出されても (※重要です)

※上に書いたのは今回実際に出たエラーコードではありますが、一度ほかのエラーを修正してみた後に出たものなので、当初のものとは異なります。

 

エラーコードが出ている場合

エラーコードの中に、プラグインの名前が出ているのがお分かりでしょうか。

/******/web/wp-content/plugins/db-cache-reloaded-fix/
/読み込みファイルへのフルパス/web/WordPressの内容を収めているフォルダ名/その中のプラグインフォルダ/プラグイン名/

FTPツールにログインして、そのプラグインをさくっと削除してみてください。結構これで解決します。

FTPツール云々については、まとめて後述します。

 

エラーコードが出ていない場合

もし、直前に更新したプラグインの名前がわかっているようであれば、それらを削除してみてください(とはいっても、更新って数件まとめてやったりもするので、難しいとは思いますが……)。

あとは、そもそもエラーコードを吐き出してもらうように、wp-config.phpファイルを修正することもできます。

wp-config.phpはいちばん上の階層にありますのでそれを開いて、その中に「WP_DEBUG」という文字列があるかどうか探します。

define(‘WP_DEBUG’, false); となっていた場合、define(‘WP_DEBUG’, true); に変更して上書きします。

そもそもこの記述がない場合は、require_once(ABSPATH . ‘wp-settings.php’);という記述を探し、それより上の行にdefine(‘WP_DEBUG’, true);を書き足して上書きします。

そしてどのプラグインが悪さをしているか判明したら、そのプラグインを削除してみてください。

 

名前が出ているプラグインを消してみたけどダメだった場合

今回、わたしがそのパターンでした。

その場合は、プラグインが入っているフォルダである「plugins」の名前を変えて、WordPressがすべてのプラグインを読み込まないようにします。

「plugins」フォルダに入っているプラグインを全削除してみるという対応も可能なんですが、フォルダの名前を変えるという対応のほうが、あとからの復旧がしやすいです。

適当に、plugins_oldとか、自分が見てわかるように変えて上書きしてください。WordPressはあくまで「plugins」という名前のフォルダにあるものをプラグインとして読み込みに行くので、一文字でもファイル名が変わっていれば読み込めません。

 

さらにそれでもだめだった場合

泣くな!! もうひとつ手があるから!! ぅぇぇぇ

プラグインフォルダなどが入っているのと同じ階層(wp-content)に、db.phpというファイルがあります。このファイルの名前を変えて、同じく参照できないようにします。

ここまで全部やってもダメだった……という場合はすみません、わたしの手には負えませぬ……。

 

FTPソフトなんて使った覚えがないよという場合

WprdPressをご利用の場合であれば、必ずどこかのサーバーをレンタルされていると思いますので、まずはそのサーバーにログインしてみてください。

そうすると、その会社の方で提供しているFTPツールがあるはずですので、それを開いてみてください。そこにすべてのファイルが存在しています。

例:ロリポップであればwebツールの中に「ロリポップ! FTP」というサービスとして用意されています。

ここにすべてのファイルがあるのは、たとえば「簡単インストール」や「おまかせインストール」的なものでサービスを利用してWordPressを構築した場合も同様です。

ここから直接いじっていきましょう。

 

wp-config.phpに書きこめない、書きこむ権限がないとか言われる

大丈夫です。借りてるサーバースペースの中ではあなたが権限管理をできます。

単純に、そのファイルが呼び出し専用になっているというだけで、どちらかというと権限の問題ではありません。

どこかに「属性」が編集できるところがあるので、数字が「400」となっているところを「600」にするか、チェックボックスが並んでいる場合は「オーナー」欄にある「書込」にもチェックを入れて、一旦保存してください。

そのうえで、前記の修正を試みてください。そのあと、属性を元に戻しておくのを忘れずに!!

 

改善したけど、このプラグインたちをどうしたらいいの

まず、新たな「plugins」フォルダを作成してください。

そのうえで、リネームした古い方のフォルダから、少しずつ移動してください。

今回自分は、エラーコードに表示されたプラグインを消し、さらにプラグインフォルダをリネームし、db.phpもリネームして回復したのですが(というのを夜中にやったのだけどよくぞここまでたどり着いたわえ)、このプラグインを戻している作業の中でもまたエラー画面になりました。

……結構乱暴な結論なんですけれど、今回エラーが出たのはいずれもいわゆる「キャッシュ系」のプラグインでしたので、今はひとつも入れておりません。前回も同様に、別のキャッシュ系プラグインが悪さしたのもあり、ちょっとエラーが多すぎるかなあと……。

正直このテのエラーが出た場合、一番に疑ってもいいのではないかとまで思います。 というわけで、戻す時は少しずつ試してみてください。

 

おまけ 予約投稿の失敗防止

もし「キャッシュ系プラグインが邪魔をしていた」という関係で、真っ白やFatal errorになり、プラグインをいくつか削除した……という上記の手順で状況が改善した方は、念のため予約投稿を試してみてください。

実は、キャッシュ系プラグインの残したファイルが、のちのち悪さをして、予約投稿の邪魔をすることがあります。というかありました。ありたてほやほや。泣きそうです。

というわけで、wp-contentの中にある「cache」と名前のつくファイルを削除してみてください。それで動くようになりました。

「cacheと名前のつくファイルってどれよ」という方は、以下のサイトが詳しかったですので、ご参考になさってくださいませ。

WordPress予約投稿に失敗する原因はwp-content/object-cache.phpだった | urashita.com
(新窓)

 

最後に

あまり無責任なことは言えませんが、もし解決しない場合でもすぐにはあきらめず、いろんな単語で検索して解決策を探ってみてください。どこかで誰かがなにかはやっている。そして解決している。

自分でPHPを一からいじっている人であれば、その人にしか起きていないエラーというのもあるかもしれませんが、普通に「WordPressを構築して、プラグインを使っている」だけの場合、オリジナルのエラーというのはそうそう存在しないと思います。

出来る限りしぶとく調べてみましょう。どこかでだれかが体験を書いてくれています。それにしてもエラー多すぎんよな!! みんな頑張ろう!! わたしはもう更新すんの怖いわ!!

(これ、つい数日前の出来事で、実際まだ疲労が残っているので、こんな商品リンクだったりします)

 

 

 

 

 

Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestShare on LinkedInFlattr the authorPrint this pageEmail this to someoneShare on Tumblr