「管理しているWordPressサイトの画面が真っ白になった!」
こんなことはありませんか?
WordPressで管理しているサイトの画面が真っ白になり、慌ててログインしようにも何をしたらいいかわからない・・・特に管理画面も真っ白になる場合、余計に慌ててしまいます。そんなときはまずPHPのエラーを疑って下さい。PHPはスクリプト言語で、実行エラーが起きたときには画面を真っ白にするという仕組を持っています。
- バージョンアップを無理にした
- 何かプログラムコードをいじった
- 自動更新に失敗した
- メモリ制限でこけた
- ファイル権限でこけた
- キャッシュによる真っ白
これらが主な原因です。多くの場合、真っ白になったらプログラムのエラーかあるいはバージョンのエラーが原因なのがほとんどだと考えられます。直前にPHPファイルを操作しませんでしたか? あるいは無理にPHPやWordPressのバージョンをアップしませんでしたでしょうか?
今回は、WordPressの画面が真っ白になってしまった場合に、復旧する方法を見ていきます。
追記:WordPress5.2以降致命的なエラーが発生した際、リカバリーモードの案内メールが管理者に届くようになりました。そこからアクセスするとリカバリーモードでログインすることが可能です。ただし、リカバリーモードは一時的な復旧のため、原因を一つ一つ特定して、完全なサイト復旧をしていきましょう。
また、リカバリーモードを装ったメールでID、PWを抜き取られる可能性もあります。案内のメールからログインする際は焦らずに、十分注意しましょう。
追記:2023年4月現在、特に何もしていないのに突然「サイトが閲覧できない」、「管理画面の表示が崩れている」というお問い合わせが増えてきています。調査した結果、多くのケースで「.htaccess」等にマルウェアが仕込まれています。また一度侵入されてしまうと、バックドアを仕掛けられる例が非常に多いため、サイトをクリーンアップするのが中々困難な場合があります。そのため侵入される前に対策することがとても重要です。日頃からWordPressのセキュリティ対策を実施していることもとても重要です。それらは別の記事にまとめていますので、お時間がある際にご覧ください。
追記:2023年10月現在、「サイトが閲覧できない」また、バックアップから戻してもすぐに見えなくなるという依頼が増えてきています。多くのケースで直接の原因は「.htaccess」を削除されているか、「index.php」を削除されています。まずは不正なアクセスがないかどうかご確認ください。見慣れないURLへのアクセスが集中している場合は、何かしらの脆弱性を狙われています。復旧後、速やかにセキュリティー対策の実施をしましょう。
WordPressの画面が真っ白の画面を表示する理由はPHPのエラー
まずはじめにWordPressの画面が真っ白になる理由はPHPのエラーです。
特に画面が真っ白になる直前に、テーマフォルダ内の『functions.php』ファイルを編集していた場合は、記述ミスや構文エラーが原因となっている可能性が考えられます。
functions.phpは独自の関数が定義できるため、カスタマイズ次第でさまざまな機能を利用できますので、コードを書き込んでいる人も多いのではないでしょうか? コードは正しく記述しなければエラーの原因となります。
なお、functions.phpでエラーが発生すると、管理画面に入ることもできなくなるので注意が必要です。管理画面に入ることができないので、修正のする際のファイル操作の際にはFTPを使用します。また管理画面からfunctions.phpを修正してエラーになってしまうと、管理画面に入ることができなくなるので、FTPを利用しての修正がおすすめです。
※仮に原因箇所がfunctions.phpではなかった場合に修正箇所の特定が難しくなるので、操作をする前には必ずバックアップを取りましょう。
修正していた箇所がある場合、該当ファイル内を調査します。
- 全角スペースを追加していた
- 不適切な箇所で半角スペースや改行を追加していた
- コード編集時に、記号を消してしまった。(抜けてしまった)
- プラグインの機能と競合する記述を書いていた
- コードそのものに問題がある
等、コードをすみずみまでチェックします。
もし構文にミスがある場合は、エラー箇所を修正してFTPで元のテーマにfunctions.phpをアップロードします。
コンパイルミスの場合
エラーコードを表示させる
「WordPressの画面が真っ白になってしまったけど、心当たりが何もない」
という場合。作り手本人に心当たりがなかったとしても、エラーの原因は必ずどこかにあります。仮にエラーの原因が分からない時は、エラーコードを表示させて原因を特定していきます。
エラーコードはwp-config.phpの記述を変更すれば表示できます。
まずwp-config.php内の「define(‘WP_DEBUG’, false);」という記述を探し、デフォルト値であるfalseをtrueに変更します。
これでエラーコードが表示されるので、再度サイトにアクセスしてみましょう。表示されたエラーコードを手がかりに原因を特定します。
例:「E_PARSE」「E_COMPILE_ERROR」「E_COMPILE_WARNING」というエラーメッセージは、コンパイルエラーです。
「E_PARSE」はコンパイル時の解析エラーです。セミコロンや括弧、左右のブラケットの欠落など、その他多くの構文エラーを含むPHP構文のエラーを示します。エラーメッセージで特定されているファイルと行を確認していきます。
「E_COMPILE_ERROR」はコンパイル時の致命的なエラー。
「E_COMPILE_WARNING」コンパイル時の警告(致命的ではないエラー)です。
WARNINGはプログラムの実行には支障がありません。WordPressの画面が真っ白に表示されている場合においては読み飛ばしましょう。
まずはデバッグモードに切り替える
画面が真っ白になってしまった場合、WordPressそのものが実行できていない可能性も考えられます。404や503エラーが出るわけでもないので、真っ白になっている原因が分からないと焦ります。
まずはwp-config.phpファイルの記述を書き換えて、デバッグモードに切り替えましょう。
BUG(虫)をDE(除去)するから、DEBUG(デバッグ)です。WordPressが実行されている場合、エラーコードを参考にすれば、どのファイルが原因になっているか分かるはずです。
もしエラーコードが表示された場合、直接問題のファイルを修正し、FTPで接続し、ページを更新すれば無事元のサイトが表示されます。
もし、WordPressの画面が真っ白表示から復旧した場合は、デバッグモードを元に戻すことをお忘れなく。
WordPressの画面が真っ白から復旧しない場合
画面が真っ白になってしまっても、その原因がすぐ判明するわけではありません。いきなりWebサイトが表示されなくなってしまったら、ビジネスにも悪影響を及ぼしかねません。
つまり、原因の特定よりも、早期復旧の方が優先順位が高くなります。
原因が分からなくても、WordPressを復旧するためにできることはいくつかあります。
パターン① プラグインの影響
まず、サイトに導入しているプラグインを全て無効化します。プラグインの更新時にエラーが起こる場合があるからです。
<管理画面にアクセスできる場合>
ダッシュボードからプラグインの項目に移動して、全てのプラグインを選択して一括操作のドロップダウンメニューから無効化をクリックします。これにより、全てのプラグインが無効となります。
画面が真っ白ではなく復旧する場合が多いので、続いて原因を特定する作業に移ります。プラグインを1つずつ有効化し直して、その度にサイトを再読み込みします。作業を進めていき、再び画面が白くなったら、そのプラグインに問題があると特定できるのです。
<管理画面にログインできない場合>
FTPクライアントを使用してサイトのファイルディレクトリにアクセスできます。ルートディレクトリのwp-contentフォルダの下にpluginsフォルダがあるので、そのフォルダの名前を変更しますpluginsフォルダを名前変更することで、プラグインが無効化され、その間に上記の特定作業を進めます。
この段階でサイトを確認し、問題なく表示されればプラグインに問題があるということです。フォルダ名を戻して、また一つ一つプラグインのチェックを行いましょう。
パターン②WordPressのテーマが問題!?
また問題がプラグインではない場合、WordPressのテーマが原因となっている可能性もあります。一度サイトのテーマをデフォルトのものに切り替えてみましょう。
ダッシュボードの外観からテーマの項目に移動し、Twenty TwentyなどのデフォルトのWordPressテーマを有効化します。サイトをもう一度テストし、問題がなければ原因がテーマだと特定できます。なおダッシュボードにアクセスできない際のプロセスは、プラグインの場合と同じです。
テーマに原因があるのなら、公式サイトなどから再度ダウンロードしてアップロードし直してみましょう。これで問題なくサイトが表示されれば対処は完了です。
しかしアップロードし直しても特定のテーマだけエラーが発生するのであれば、テーマそのものに問題がある可能性も否定できません。エラーが疑われる場合は検索して、似たような事例がないか探してみてください。
解決策が見つからない場合はデベロッパー(開発元)に連絡するか、そのテーマの使用を諦めて別のものを検討してください。
メモリ制限でエラーとなる場合も
それでもまだWordPressの画面が真っ白になる場合。メモリ制限が考えられます。
WordPressではwp-config.phpでメモリの上限を設定することができます。wp-config.phpの下記箇所を修正して、メモリの上限を上げてみてください。
define('WP_MEMORY_LIMIT', '64M');
64MBまで増やせば、メモリ不足による真っ白画面は避けられることが多いです。
ただし、WordPress側で設定したメモリの上限がインフラ側に許可されているメモリの上限を超えてしまい、上手くメモリの上限が上げられない可能性があります。
この場合は、サーバーの保守会社に連絡しましょう。
キャッシュの問題でフロントだけ真っ白になる
バックエンドにログインできるのに、フロントが真っ白の場合。キャッシュが悪さをしていることもあります。
例としては「WP Super Cache」などのキャッシュ系プラグインを使用している場合です。
その場合はWordPressダッシュボード「設定」>「WP Super Cache」>「Delete Cache」
の順番でキャッシュをクリアして下さい。
また、同時にブラウザキャッシュのクリアも必要です。Chromeなら
「その他のツール」>「閲覧履歴の削除」
の手順でクリアできます。
キャッシュとは一時保存空間のようなもので、何度もアクセスする情報をキャッシュで保存しておき、次にあなたがアクセスした場合に表示して、見た目上のスピードを上げるモノです。毎回データを取りに行っているわけではなく、キャッシュが働いています。それを一時的に消し、直接データを取りに行く行為を行えば、真っ白画面は元に戻る可能性があります。
「.htaccess」の記述ミスの可能性も
.htaccessでリダイレクト処理などをしようとした際に、記述ミスをしている可能性もあります。
またプラグインが自動で.htaccessに記入している可能性もあります。直前にリダイレクト処理など設定した場合は、.htaccessの構文に誤りがないか確認してみましょう。
権限不足での真っ白エラー
サーバーにはファイルパーミッションと呼ばれる権限が存在します。ファイルやフォルダごとに、読み取り・書き込み・実行の順番で、read-write-execの権限を持っています。それぞれrwxと表現され、これら権限がファイルごとに付与されていることで、誰が何のアクセス権限を持つかが異なります。
真っ白い画面になっているエラーでファイルパーミッションを上げるには、wp-config.phpの権限などを上げるのも一つの手なのですが、セキュリティ上大変なリスクを背負うことになります。よってあまりオススメできず、ここまで来たらプロに(私どもに)連絡していただきたいです。
あまりに何度も真っ白になる場合
WordPressの表示が真っ白になる現象は”死の真っ白画面(WSoD)”といわれ、管理者にとっては心臓に悪いです。問題が発生する度にサイトが表示できなくなり、場合によってはサーバーサイド側からも原因を探らなくてはいけません。
そうでありながらWordPressの復旧は専門的な知識を必要とし、できることなら自分はサイトの管理ではなく運営に集中したいという方も多いのではないかと思います。
何度もWordPressの画面が真っ白になってしまって困っているという方は、一度プロに保守管理をお願いしてみるのも一つの手です。WordPressの保守サービスはWPセンターのように初期費用0円で始められるサービスも存在します。
WPセンター安心サポート
保守にコンサルティング等の内容を含んでいるためこれから本格的にWordPressサイトの運用を進めていこうと考えている方にもおすすめです。何より、保守を外部に任せると時間が出来て、本来の付加価値を出せる業務に集中できます。WordPressの保守作業に困ったときは、一度プロフェッショナル集団のWPセンターへ相談してみてはいかがでしょうか?
コメント