エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


WordPress 画面が真っ白になる対応の一つ デバッグモード

      2017/03/08

WordPressの画面が真っ白になる不具合は PHPのエラーです

 

画面が真っ白になる原因の説明

 
WordPressの画面が真っ白になる不具合があった場合のほとんどは、PHPのエラーが発生している場合です。
 
ですが、phpのエラーメッセージの表示はセキュリティ上都合が悪い情報になりますので、一般的には PHPのエラーを表示しない設定になっています。
そのため、エラーが起こって画面表示の処理が実行されていないうえに、エラーメッセージも表示されないので、画面が真っ白になるという結果になるのです。
 
ですので、そういう場合は、エラーメッセージを表示させることで具体的にどんな不具合が起こっているのかを表示させることで解決するのですが、今回はその設定方法について説明します。
 
 
その前に、PHPのエラー表示については「WordPress 画面が真っ白になる不具合があった場合の対応の一つ」の方も合わせてご覧ください。
 
また、プラグインが原因で WordPressが起動しなくなったと分かっている場合、もしくは、それが原因じゃないかと疑わしい場合、簡単な方法で復旧させることを試せる方法もあります。
それを「プラグインが原因で起動しないWordPressを復旧させる方法解説」で記事にしていますので、そのような状況の方はあわせて参考にしてみてください。
 
 


 

WordPressのデバッグモード・画面にエラーを表示

 
WordPressには、デバッグモードが用意されています。
 
これの設定を「True」「false」で切り替えることでデバッグモードに変更し、PHPのエラーメッセージを表示できるようになります。
 
具体的には、WordPressをインストールしたフォルダにある「wp-config.php」ファイルに下記のような記述があります。
※「wp-config.php」は、WordPressのフォルダのルートフォルダにあります。(WordPressのドキュメントルートフォルダにあります。)
—————————-

—————————-
 
この記述の一番下の行の「false」を「true」に変えることで、デバッグモードに変わり、画面に PHPのエラーが表示されるようになります。
 
 

上記の設定でもエラーメッセージが表示されない場合

 
もし、上記の設定を変えるだけでは画面にエラー表示がされない場合は、下記の行を上記の行の下あたりに追加してみてください。
そうすると表示されるようになるでしょう。(この内容については、下の方に別途説明しています。)
—————————-

—————————-
 
 

WordPressのデバッグモード・ログファイルに出力

 
上記の設定は、エラーメッセージを処理するか、否かの設定です。
加えて、WordPressには、そのエラーメッセージを画面に表示するか、否かを設定することができます。
 
開発中の環境であれば問題ありませんが、すでに本番公開してるサイトでの不具合調整など、エラーメッセージを画面に表示させたくない場合も多々あります。
そんな場合は、エラーメッセージを画面には表示させずにエラーログファイルにエラーメッセージを出力させる方法が用意されています。
 
 
「wp-config.php」の「define(‘WP_DEBUG’, false);」の下に下記の行を追加することで画面には表示されなくなります。(「false」を「true」に変えることで画面にエラー表示されます。)
—————————-

—————————-
 
加えて、下記の行を追加することで、ログファイルを出力されるようになります。(ここも「true」を「false」にすることでログ出力を止めることができます。)
—————————-

—————————-
 
最終的には下記のような記述になります。
—————————-

—————————-
 
エラーログファイルが出力される場所は、デフォルトの設定では「/wp-content/debug.log」として出力されます。
 
ブラウザでエラーログを見る場合は、「http://……./wp-content/debug.log」でアクセスします。(もしくは、FTPでダウンロードするなどして確認します。)
 
 
ただ、この場所は「http://……./wp-content/debug.log」でアクセスできてしまいますので、一時的であれば問題ありませんが、数日間程度ログを出力させて確認したいというような場合などは、.htaccessでアクセス制限をしておく方がいいでしょう。
 
具体的には、「wp-content」フォルダの直下に下記の「.htaccess」ファイルを入れておきましょう。
 
/wp-content/.htaccess
—————————-

—————————-
 
※この設定をするとブラウザではファイルにアクセスできなくなりますので、ログを確認する際は ftpでファイルをダウンロードしてくる必要があります。
 そのため、場合によっては、Basic認証の設定を行う方がいいかもしれません。
 
※サーバによっては、「.htaccess」の制限がある場合がありますので、アクセス制限が効かない場合もあります。
 
また、エラーログ出力は、エラーがある限りエラーログファイルに出力を続けますので、ログの出力が必要なくなった時点でログ出力の設定を止めておきましょう。
そうしないとサーバを圧迫していく原因になってしまいます。
 
 


 

デバッグモードで実験してみたこと

 

WordPressデバッグモードの動きについて

 
お客さんの環境とローカルの PCに設定している XAMPP環境とでデバッグモードの設定と動作に違いがありましたので、それを調べてみました。
 
XAMPP環境
20140314_wp_01
 
XAMPP環境
20140314_wp_02
 
LAMP環境
20140314_wp_03
 
 

WordPressデバッグモードの動きについて

 
具体的に「WP_DEBUG」の処理として何が行われているかも確認してみました。
 
/wp-includes/load.php に下記の記述があります。
—————————-

—————————-
 
バージョンによって少しずつ記述内容が違うようですが、上記は、バージョン 3.8のものです。
 
実際に内部でやっていることは、設定されているフラグによって、「ini_set(‘display_errors’, ‘On’);」などのエラー処理をする、しないの処理をやっているだけでした。
 
ただ、上記を見ても分かるように、「WP_DEBUG」が「True」になった上で「WP_DEBUG_DISPLAY」が「True」になって初めて「ini_set( ‘display_errors’, 1 );」が設定されるようです。
 
そのため、「define(‘WP_DEBUG’, false);」の場合は、そもそものサーバの設定が優先されます。
 
また、WordPressのデバッグ処理を無視するなら、最初から「ini_set( ‘display_errors’, 1 );」を直書きしてもよさそうです。
 
 

サーバを移転したりPHPのバージョンを変えたりしたときに画面が真っ白に 2015.03.02追記

  • PHPのバージョンアップをした。
  • サーバを移転した。
  • ローカル環境から本番環境に移した。

 
といった感じで、PHPの設定そのものが変った可能性がある場合に画面が真っ白になるという不具合の場合は、PHPのショートタグの設定が原因の場合もあります。
 
ショートタグとは、PHPの宣言を「<? …… ?>」という省略形式で記述する方式のことですが、この設定を有効にするか否かのデフォルト設定が、PHPのバージョンによって違うため、動かなくなる可能性があります。
 
それについて「サーバ移転、PHPバージョンアップでPHPのソースコードが表示される・ショートタグのPHPが動かない」に記事を書いていますので、詳細はこちらを参照してみてください。

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Comment

  1. 馬場 より:

    デバックモード反応しません。
    W3 Total Cacheをプラグインするといきなり真っ白になりました。

    W3 Total Cacheを削除してももとにもどりません、

    http://omiairyoen.com/wp/wp-login.php

    プラグインは全て停止にしましたがもとにもどりません。

    wp-config.phpもデバックモード対応しません

    原因わかれば教えてくださいませ

    • エス技研 より:

      ご連絡の内容では不具合の原因や対応方法などは分かりかねますね。
      個別のプラグインの不具合については、情報提供はなかなか難しいものがあることをご理解ください。
      また、キャッシュ系のプラグインは、データベースのデータやテンプレートのデータを書き換えて処理する機能がありますので、設定ファイルの内容やデータベースの内容などを確認しながら不具合の内容を確認する必要があるようです。
      そのため、場合によっては復旧させることにすごく手間がかかる場合も多々あるようです。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

ショートコード+ウィジェットでサイドバーに人気記事を表示させる方法

WordPressのサイドナビゲーションに人気記事を編集する方法です。プラグインを使わずウィジェットにショートコードで任意のPostIDを指定することで編集する方法です。

BJ Lazy LoadでWordPressを高速化!SEO効果絶大でPVもアップ!

Lazy Load系の処理を使い画像だけでなくiframe等表示スピードに影響があるものを総合的に対策。入れるだけで高速化するので使わない手はない!

WordPressの管理画面ログインURLの変更方法解説

管理画面のログインURLの変更は極めて有効なセキュリティ向上の方法ですので、その解説を行います。

WordPressで特定のURL、ページ、ファイル単位でBasic認証を設定する方法

WordPressはURLはmod_rewriteにより疑似的に作られていますが、特定のページ、特定のURL、ファイル単位でBasic認証を設定する方法を解説します。ツールも紹介。

WordPressでダブルクォートなどの文字が自動変換?原因と対処方法

ダブルクォート、シングルクォート、HTMLタグなどが自動変換関数によって入力と違う形で表示されます。原因を2つの関数ごとに説明し、対応方法を3パターン提示します。

WP Multibyte PatchでWordPressの管理画面のイタリック体を解消

管理画面の一部の文字がイタリック(斜体)になっているのはプラグイン「WP Multibyte Patch」が有効になっていないためです。日本語を使うには必ず有効化しましょう。

BizVektor環境の引越しでメニュー、バナーが消える不具合の対応方法解説

BizVektor環境の引越し方法と不具合が発生しやすい箇所の解説です。引っ越し作業をする際にURLやファイルのパスを置換する際の手順解説と対応方法についての解説です。

BackWPupでバックアップ・Jobの設定・保存先の情報設定

BackWPupその3。Jobのバックアップファイルの保存先の設定についての解説。

WP jQuery LightBoxでWordPressの画像を簡単に見やすくする方法解説

画像のリンクに対して LightBox効果を簡単に追加するプラグイン。インストールして数項目にチェックを入れるだけで設定完了。属性を追加することで機能も追加できる。

PoeditでWordPressの日本語対応方法。英語プラグインの日本語翻訳ファイル作成

プラグインの日本語化の手順のまとめ。.pot、.po、.moファイルの解説や便利ツールの Poeditの紹介を行いつつ、手順、ファイル設置場所、注意ポイントなども紹介。