WordPressサイトを閲覧して突然「死の真っ白画面(WSoD)」に遭遇する時ほど残念なことはありません。このエラーが発生すると、管理者と訪問者の両方がサイトにアクセスできなくなります。
WSoDは、考えられる原因や解決策を示す情報が不足し、非常にイライラするものです。同時に、最も一般的なWordPressエラーの1つでもあります。心配は避けられないものの、ほとんどの場合、実際には解決可能です。
今回の記事では、WordPress WSoDとは何か、そして、その一般的な原因についてご説明します。最も重要なこととして、サイトを復旧した上で可能な限り高速で稼働させるための9つのソリューションを扱います。
それでは始めましょう!
WordPressの死の真っ白画面とは
その名のとおり、WordPressの「死の真っ白画面(別名「WSoD」や「死のホワイトスクリーン」とも)」は、アクセスしようとしているページが表示されず、画面が真っ白になる現象を指します。
使用しているブラウザによって、表示されるエラーメッセージは異なります。以下はGoogle Chromeの例です。「This page isn’t working and is unable to handle the request」というHTTP 500エラーが表示されています。
続いては、Mozilla Firefoxの「死の真っ白画面」です。
ご覧のとおり、真っ白な画面です。有用なエラーや警告メッセージは何も記載されていません。
WordPressの「死の真っ白画面」は、ほとんどの場合、PHPコードエラー、またはメモリ制限に達したことが原因です。
別の考えられる原因は、テーマまたはプラグインの欠陥です。後者は、ウェブサイトのフロントエンドがダウンしていながら、WordPress管理画面は稼働している場合に問題となることがあります。サイトのダッシュボードが機能しているかどうかをすばやく確認するには、yourdomain.com(あなた自身のドメイン)/wp-adminに移動してください。
それでは、どのようにWSoDをなおすことができるのでしょうか。本題へと進みましょう!
WordPressの「死の真っ白画面」をなおす方法(9つのやり方)
WordPressの「死の真っ白画面」に遭遇した時の優先事項は、できるだけ早く対処すること。これを念頭に置いて、9つの方法を見てみましょう。
1. WordPressプラグインを無効にする
WordPress WSoDを修正する最も簡単で一般的な方法の1つが、プラグインをすべて無効にすること。多くの場合、プラグイン更新時の問題が原因となっています。
管理画面にアクセスできるのであれば、ダッシュボードから「プラグイン」に移動し、すべてのプラグインを選択して、「一括操作」ドロップダウンメニューから「無効化」をクリックしましょう。
これにより、すべてのプラグインが無効になります。
これで問題が解決した場合は、続いては、原因を特定する作業に進みます。これを行うには、プラグインを1つずつ有効化し、そのたびにサイトを再読み込みします。これで、フロントエンドがダウンした時に、問題のあるプラグインが判明します。
その後、プラグインの開発者に連絡するか、WordPressプラグインディレクトリでサポートチケットを投稿します。
ダッシュボードにログインできない場合は、ファイル転送プロトコル(FTP)クライアントを使用して、サイトのファイルディレクトリにアクセスできます。
ルートディレクトリのwp-contentフォルダ下にある、 pluginsフォルダを見つけ、「plugins_old」のような名前に変更します。
次に、フロントエンドでサイトを確認します。これで問題なく機能している場合には、プラグインを1つずつテストしましょう。プラグインフォルダの名前を「plugins」に戻し、問題のあるプラグインが見つかるまで、その中の各プラグインフォルダの名前を個別に変更します。
2. デフォルトのWordPressテーマに切り替える
問題がプラグインではない場合、WordPressテーマが「死の真っ白画面」の原因である可能性があります。これが問題であるか確認するには、デフォルトのテーマへと、テーマを切り替えることができます。
管理画面にアクセスできるのであれば、ダッシュボードの「外観」>「テーマ」に移動して、Twenty TwentyなどのデフォルトのWordPressテーマを有効化しましょう。
そして、サイトをもう一度テストしてみてください。問題がなければ、原因がテーマにあることがわかります。
ダッシュボードにアクセスできない場合のプロセスは、プラグインの場合と同じになります。
FTPを使用してサイトのファイルにアクセスし、 wp-content/themesフォルダの名前を別の名前に変更します。
これで、WordPressサイトが最新のデフォルトテーマに変わります。ともすると、Twenty Twentyです。他にテーマがない場合は、WordPressテーマディレクトリからテーマをダウンロードして、テーマフォルダにアップロードできます。
その後、サイトをもう一度確認しましょう。正常に表示されていれば、テーマに競合または不適切な更新がある可能性があります。その場合は、デベロッパーに連絡するか、 テーマの切り替えを検討するのが妥当でしょう。
3. ブラウザとWordPressプラグインのキャッシュをクリアする
WordPressサイトのバックエンドにアクセスできる状態で、フロントエンドにWSoDが表示される場合は、キャッシュの問題が原因である可能性があります。
これに対処するには、ウェブブラウザのキャッシュとWordPressキャッシュプラグイン(インストールしている場合)のクリアを実行してみてください。
WordPressサイトで、WP RocketやWP Super Cacheなどのキャッシュプラグインを使用している場合には、通常、プラグインの設定ページからキャッシュをクリアすることができます。
WP Super Cacheを例に挙げると、WordPressダッシュボードから「設定」>「WP Super Cache」>「Delete Cache」という手順で実行できます。
MyKinstaからキャッシュをクリアする方法
Kinstaをご利用であれば、MyKinstaから簡単にキャッシュをクリアできます。これを行うには、アカウントにログインし「ツール」>「サイトキャッシュ」セクションの「キャッシュをクリア」をクリックします。
キャッシュをクリアしたら、変更を保存します。次に、サイトに再びアクセスして、問題が解決したかどうか確認します。まだ、問題があるようであれば、次の方法へと進みましょう。
4. デバッグモードをオンにする
まだWordPressの「死の真っ白画面」が表示される場合、管理画面が機能していない場合、または、問題を発見したものの深く掘り下げたい場合には、デバッグモードが使えます。これにより、サイトで発生しているエラーを表示することができます。
デバッグを有効にするには、WordPressインストールのwp-config.phpファイルを開く必要があります。その中には、次の行があるはずです。
define( 'WP_DEBUG', false );
「false」を「true」に変更してから、サイトを再読み込みします。最初からこのコードが存在しない場合は、ファイルの先頭に追加してください。
「真っ白」でなく、エラーメッセージが表示されるはずです。これはまだ改善ではありませんが、大きな前進です。WSoDのエラーメッセージには、次のように、問題の発生しているファイルが表示されます。
Cannot redeclare get_posts() (previously declared in
/var/www/html/wordpress/wp-includes/post.php:1874) in
/var/www/html/wordpress/wp-content/plugins/my-test-plugin/my-test-plugin.php on line 38
この例では、メッセージの後半で確認できるように、my-test-pluginというプラグインの38行目に問題があることがわかります。このプラグインを無効にすると問題が解決するはずです。
デバッグモードを有効にしてもエラーの中身がまったく表示されない場合は、ウェブホストに問い合わせてみるのが賢明です。サーバーでデバッグが正しく設定されていない可能性があります。
Kinstaでは、ビルトインのデバッグツールが使用できます。MyKinstaダッシュボードで、ウェブサイトの名前をクリックして「ツール」にある「WordPressデバッグ」から「有効にする」を選択します。
その後、MyKinstaダッシュボードの「ログ」セクションでエラーログをチェックし、問題の詳細を確認できます。
デバッグモードをオンにすると、ウェブサイトの情報の一部が未承認のユーザーに公開される可能性がありますので、ご注意ください。使用が終わったら、必ずこのモードをオフにしてください。
5. メモリ制限を増やす
上記の解決策をいくつか試しても、いまいましきWSoDページが表示される場合、またはメモリ制限やメモリ不足のエラーが発生する場合には、アプリケーションにさらにメモリを割り当てる必要があります。
これは、多くのWordPressインストールデータのwp-config.phpファイルを使用して行うことができます。ファイルを開き、次のコードを追加します。
define('WP_MEMORY_LIMIT', '64M');
これがうまくいかない場合は、他の方法もあります。通常の環境では、.htaccessファイルを使用してメモリ制限を増やすことができます。次の行を追加するだけでOKです。
php_value memory_limit 64M
htaccessファイルにアクセスできない場合は、php.iniファイルを使用してメモリ制限を増やすことができます。
これを行うには、FTPを使ってサーバーに接続します。サイトのルートディレクトリで、php.iniファイルを探します。これが見つかったら、ファイル内のどこでもいいので、次の行を追加してください。
memory_limit = 64M
これを行なっても、メモリ不足が見られる場合には、アプリケーション内に問題がある可能性があります。ともすると、何かしらのテーマやプラグインが過度の量のリソースを使用していることが考えられます。
ここまで来ると、開発者を雇って調査してみることをお勧めします。さらにホスティング会社に頼んで、あなたのサイトのSQLログと他のリソースのデータを見せてもらうのも効果的でしょう。
6. ファイルパーミッションに問題がないか確認する
WSoDのもう1つの潜在的な原因は、権限と所有権の問題です。この問題は自力で修正することができます。ただし、実際に操作の中身を理解していないと、攻撃者が悪用できる脆弱性を生み出してしまう可能性があるため、自信がなければ、やめておきましょう。
WordPressのパーミッションに関しては、3つの簡単なルールに従う必要があります。
- ファイルは664または644に設定する
- フォルダは775または755に設定する
- wp-config.phpファイルは、660、600、または644に設定する
サーバーにSSHでアクセスできる場合は、次のコマンドを使用して適切なルールを適用し、WordPressのルートディレクトリから実行できます。
sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chmod 660 wp-config.php
これを行う方法がわからない場合や、不安がある場合は、ウェブホストに助けを求めるのが賢明です。
7. 自動更新の失敗がないか確認する
サーバーがタイムアウトした場合など、 WordPressで更新のアップデートが発生することがあります。多くの場合、この問題は自動的に解決します。ただし、まれにWordPressの「死の真っ白画面」が表示されることがあります。
まずは、WordPressのルートディレクトリに移動し、そこに.maintenanceファイルがあるかどうかを確認します(ファイルの名前が短縮されている場合もあり)。
そして、そのファイルを削除して、サイトを再び読み込んでみます。
アップデートが成功したもののWordPressによりこのファイルが自動的に削除できていなかったことが原因であれば、これですべてが正常に機能するはずです。
アップデートが完了していなかった場合には、自動的に再起動し、その場合にも正常に機能するはずです。
これらの方法すべてが失敗した場合は、WordPressで推奨されている手動アップデートの手順に従ってください。これにより、問題が解決するはずです。
8. 構文エラーを修正、またはバックアップデータから復元する
WordPress WSoDのもう1つの一般的な原因は、 WordPressサイトでコードを編集しているときに、誤って何かを入力したり、構文を間違えたりすることです。
間違った場所に1文字入力してしまうだけで、サイト全体がダウンする可能性があります。そのため、本番サイトでのコード編集は絶対に避けてください。
でも心配はいりません。FTPを使ってサイトに接続し、手動で加えた変更を元に戻すこともできます。問題の原因となった変更点を特定できない場合に備えて、WordPressサイトのバックアップを取っておくのがお勧めです。
Kinstaを使えば、ワンクリックでサイトを以前の状態に復元できます。これを行うには、MyKinstaダッシュボードにログインし「バックアップ」へと移動します。
既にWordPressでデバッグモードを有効にしているのであれば、構文解析エラーを示すメッセージが表示されるはずです。これを確認して、問題のあるコードの場所を正確に把握するのも手です。
9. PHPテキスト処理機能を向上させる
それでもまだWSoDが解決できないようであれば、もう1つの手段が試せます。まれに、この問題の原因が、ページや投稿の長さである場合があります。
バックトラックと再帰の制限を引き上げて、サイトのPHPテキスト処理機能を調整してみてください。具体的には、次のコードをwp-config.phpファイル内に貼り付けます。
/* Trick for long posts /
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);
このコードを追加し保存します。次に、サイトを再読み込みして、無事に機能するかどうかチェックしましょう。
まとめ
WordPressの「死の真っ白画面」は、信じられないくらいに苛立たしく、恐怖さえ感じることもあります。原因となる可能性はいくつもありますが、それでも、その見た目のインパクトほど、問題は根深くないものです。
プラグインまたはテーマを簡単にチェックすることで、あるいはその両方で、ほとんどの場合WSoDは解決できます。WordPressデバッグモードを活用すれば、問題の原因についてのより細かな洞察が得られます。
あなたは、WordPressの「死の真っ白画面」に遭遇したことはありますか?その時の状況を教えてください。事例があればあるだけ、多くの学びが得られます!
コメントを残す