wordpressのサイトが真っ白になった時、Fatal errorが表示された時の対処方法

はじめに

最近、管理しているwordpressサイトのwordpressをアップデートしたところ、「Fatal error:cannot redeclare ~」というエラーだけが表示され、他には一切何も表示されなくなりました。サイトだけでなく管理画面も同様にです。このようなエラーは3回目だったので割りと冷静に対処できましたが、初めてこのエラーが表示された時は最高に心臓に悪かったです。冷や汗ものです。そこで少しでも多くの方のエラー解決の助けとなることを望み、また自分の備忘録するためにも私が経験したエラーに対する対処方法をメモします。

症状

今回のエラーも含め、これまでに私が遭遇した症状は以下の2つです。新しいプラグインをインストールしたあとでwordpressをアップデートしたところ、wordpressで構築したサイトとその管理画面にアクセスした場合に以下の症状が出ました。

  • 「Fatal error:cannot redeclare ~」と表示される
  • なお、「Fatal error:cannot redeclare ~」のredeclareのあとは原因によって異なるようで、私が経験したのは、「Fatal error:cannot redeclare rich_edit_exists()〜」「Fatal error:cannot redeclare check_password_reset_key()〜」の2つです。

  • 真っ白な画面でエラーすら表示されない


真っ白な画面が出た場合

エラー表示もなく真っ白な場合は、まずエラーを表示させましょう。wordpressのエラーを表示させるには、wp-config.phpに以下の記述を追記、または修正します。ただし、サイトが復旧したら削除するか、trueの部分をfalseに修正しておきましょう。
[php]
define(‘WP_DEBUG’, true)
[/php]
この後でwordpressで構築したサイトにアクセスすると、エラーが表示されていると思います。ありがちなのは、function.phpを修正しているときに、余計な文字が入ってしまった場合です。真っ白になる直前にしていた作業と表示されているエラーを照らしあわせれば原因がわかるかもしれません。そしてエラーとして「Fatal error:cannot redeclare〜」と表示される場合があります。このエラーを解決し復旧に成功した時の対処方法を以降に載せます。以下の対処法は必ずしも有効ではないことをご了承の上自己責任でお試し下さい。

Fatal error:cannot redeclare〜の対処手順

まずはバックアップを取る

まずはじめに、これからの作業で問題があっても作業前の状態に戻せるように現状のバックアップを取ります。現状に戻すためにバックアップ取る必要があるのは、wordpressのファイルとsqlファイルです。これらのバックアップを取る方法を以降に簡単に載せます。

wordpressファイルのバックアップを取る

wordpressファイルのバックアップはwordpressのフォルダをまるごとバックアップするのが一番手っ取り早いです。ただ、回線が遅いなどの理由で無駄なファイルのバックアップを取りたくない場合は、基本的には以下のファイル、フォルダのバックアップがあれば大丈夫です。不安な方はwordpressフォルダをまるごとバックアップ取ることをおすすめします。

  • wp-config.php
  • wordpressが使用するデータベース名およびそのデータベースにアクセスするためのアカウント(ユーザ名、パスワード)などの情報が記述されています。

  • wp-contentフォルダ
  • このフォルダにはこれまでにアップロードした画像、テーマファイル、プラグイン関連のファイルが入っています。

  • .htaccess
  • このファイルにはアクセス制限やユーザー認証、リダイレクトに関する情報が記述されています。

sqlファイルのバックアップを取る

wordpressのsqlファイルには、投稿記事の内容や各設定などが含まれています。このsqlファイルをphpmyadminを使ってエクスポートすることでバックアップを取ります。なお、sqlファイルをエクスポートする手順については、こちらの「ステップ1:本番サイトのデータベースをエクスポートする」にメモしたので必要な方は参考にして頂ければと思います。

エラーの原因かもしれないプラグイン関連のファイルを削除

上記に書いたエラーが発生する原因として、新しくインストールしたプラグインと今までに使用していたプラグインが使用する関数同士が衝突する、ということがあるそうです。実際、私も「Fatal error:cannot redeclare rich_edit_exists()〜」が表示されたのは、新しくプラグインをインストールし、さらにその後でwordpressをアップデートした後でした。よって、もしプラグインをインストールしたあとで上記のようにエラーが表示されたり、真っ白になった場合は、そのプラグインに関するファイルを全て削除したほうがよいです。


プラグイン関連のファイルは、wp-contentフォルダの「plugin」フォルダに保存されています。このpluginフォルダ内にある、エラー直前に導入したプラグインと同じ名前のフォルダをまるごと削除すればOKです。本来ならば関連するプラグイン関連のフォルダを削除したあとで、データベースも修正する必要がありますが、以降でwordpressを最新版に更新する際に、wordpress側がデータベースを更新してくれるのでフォルダを削除するだけで大丈夫です。


wp-content、wp-config.php以外のファイルを更新

wp-contentフォルダと、wp-config.php以外のファイルを最新版のwordpressのファイルに更新します。これらのフォルダとファイルを更新する場合、不安な方は現状のフォルダとファイルの名前を変更し、その後で最新版のフォルダとファイルをアップロードしてもいいかもしれません。例えば、以下の図ように現状のフォルダとファイルに「_old」などを加え、その後で最新版のフォルダとファイルをアップロードします。こうすれば、万が一何かあってもファイル名、フォルダ名から「_old」を削除すれば元に戻せます。


なお、こういう作業をするときは、サーバ側とローカルマシン側それぞれの画面を表示できるFTPクライアントソフトが便利です。私はこれまでだいぶ前にダウンロードしたCyberduckというソフトを使っていましたが、最近セールしていた時に入手した「ForkLift」というソフトがすごく便利で感動しました。以下の図はForkLiftの画面です。
forklift_sample_edit_resized
ForkLift – File Manager and FTP/SFTP/WebDAV/Amazon S3 client App
カテゴリ: 仕事効率化 価格: ¥2000


.maintainanceを削除する

wordpressでエラーや不具合が発生すると、wordpressが気をきかせてwordpressのルートフォルダ(wp-config.phpがあるフォルダ)に、「.maintanace」というファイルを作成します。これがルートフォルダにあると、サイトのURLにアクセスしてもメンテナンス中ですと表示されたり、また管理画面では「wordpressの更新に失敗しました」というメッセージが表示され続けます。なので、上記の作業が完了したらこれを削除してください。

wordpressの管理画面にアクセスする

以上の作業が完了したら、あとは管理画面にアクセスしてみます。問題なければ、「データベースの更新が必要です」という画面が現れるので、「WordPressデータベースを更新」をクリックします。これで私の場合は復旧に成功しました。

まとめ

wordpressで構築したサイトが正常に表示されなくなると、本当に焦ります。ただ、とりあえず冷静になって色々試してみるしかないです。いろいろ調べてもダメな場合は、wordpressのフォーラムなどで質問してみると有益な情報を得られると思います。

参考サイト

以下のサイトを参考にさせて頂きました。大変参考になりました。ありがとうございました。

WordPressで画面が真っ白になったとき。「Fatal error: Cannot redeclare」からどうする? | おすすめ犬ピノが行く!改

WordPressで画面が真っ白になったら、最初にやるべきこと | Simple Colors

このエントリーをはてなブックマークに追加

SPONSORED LINK

この投稿へのコメント

  1. 匿名 said on 2016年9月7日 at 22:12

    この記事のおかげでエラーが回復しました。
    ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

  1. […] <IMG Via:Flickr> 人気記事プラグイン「Wordpress Popular Posts」バージョン3.1.0にアップデートしたら、WordPressがすべて真っ白になってしまった!プラグインのアップデートの失敗”が起こったのだ。 Googleで検索したら、virmentというサイトに辿り着いた!このサイトによると、ダッシュボードには入れないので「FTPソフト」で接続し、関連ファイルを削除するという内容だった。やってみた!! […]

  2. […] || []).push({}); 今回のように、エラーになった時の対処方法はこちらのwordpressのサイトが真っ白になった時、Fatal errorが表示された時の対処方法に詳しく記載されています。 […]

  3. […] そしてこちらのサイトを参考にして、無事解決することができました。 […]

トラックバック URL