エス技研

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


WordPress 画面が真っ白になる不具合があった場合の対応の一つ

      2017/03/11

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

 

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

 
WordPressに限った話ではありませんが、画面を表示させようとして画面が真っ白になる不具合があった場合の対応方法の一つをご紹介します。
 
画面が真っ白になるというのは、おおよその場合 PHPのエラーが発生している場合です。
ですが、エラーメッセージが画面に表示することは、セキュリティ上好ましいことではないため、一般的なレンタルサーバの設定ではエラーメッセージは表示しない仕様になっていますので、エラーが起こっていて正常に表示されるものがない状態で、しかもエラーメッセージも画面に表示されない設定になっているために、結果的に真っ白な画面が表示されている、という状況になっていることが多いのです。
 
その場合でも、エラーログにエラーメッセージが出力されている場合も多いため、それを確認することで何が起こっているかを把握することはできるのですが、エラーログって?っていう方も多いでしょう。
また、いちいちエラーログを表示させて確認するのは面倒でもあったりします。
(レンタルサーバの場合は、デフォルト設定ではエラーログも出力していない場合もあります。)
 
そんな場面での対応方法です。
 
 

PHPのエラーメッセージを画面に表示する方法

 
対応方法としては、まずはエラーが起こったらそのエラーメッセージを画面に表示させて何が起こっているのかを確認しよう、ということになります。
 
対応方法は、3つあります。
 
 1.php.ini で設定する方法
 2..htaccess で設定する方法
 3.PHPのプログラムの中で設定する方法
 
 

1.php.ini で設定する方法

 
「php.ini」は PHPの設定について書かれているファイルで、基本的に PHPはここで書かれた設定によって動いています。
そのため、PHPに関する設定はここで設定できますが、ここで設定を変更した場合は基本的にはサーバ全体にその設定が反映されます。
 
そのため、例えば、同じサーバで複数の Webサービスを提供していて、すでに本番公開されているサービスではエラー表示は出ないようにしたい、という場合にはこの方法を取ることは避ける方がいいでしょう。
 
また、php.iniの設定変更は非常にリスクが高いため、レンタルサーバによっては、直接変更ができなくなっている場合も多々あります。
 
ロリポップサーバの場合は、ドメイン、サブドメインごとに「php.ini」の設定をすることができますので、php.iniを変更するこの方法でもほかのサービスに影響を与えずにエラー表示をさせることができます。
また、ロリポップサーバでは php.iniの設定変更によるトラブルを避けるため、あらかじめ決められた項目のみプルダウンで設定を選択する方法でのみ変更が可能になっています。
 http://lolipop.jp/manual/user/php-setting/
 
さくらインターネットの場合は、管理画面から php.iniの編集ができるようになっています。
 http://design-spice.com/2011/02/11/sakura-php-error-lo/
 
 
順番が逆になってしまいましたが、php.iniで設定する場合は、「display_errors」の項目で設定します。
php.iniのファイルの中で「display_errors」を検索して、下記の設定を行います。
 
※エラーメッセージを表示させる場合
display_errors = On
 
※エラーメッセージを表示させない場合
display_errors = Off
 
 
最後に、この説明で何をしていいか分からない方は、1番の「php.ini で設定する方法」を選択するべきではありませんので、この程度の説明でとどめます。
 
 

2.「.htaccess」 で設定する方法

 
php.iniで設定する場合は、基本的にサーバ全体に影響が及びますので、1台のサーバで複数の Webサービスを提供している場合には、特定のサービスを入れているフォルダ単位でエラーの表示、非表示を切り替えたい、と思う場合もあるでしょう。
そういう場合は、「.htaccess」での設定する方法が有効です。
 
「.htaccess」のファイルに下記の 1行を追加すれば OKです。
 
※エラーメッセージを表示させる場合
php_flag display_errors On
 
※エラーメッセージを表示させない場合
php_flag display_errors Off
 
WordPressの場合は、ドキュメントルート(wp-config.phpが置いてあるフォルダ)に「.htaccess」が生成されている場合がありますので、それに上記の設定を追記すれば OKです。
 
この設定方法では、.htaccessを入れたフォルダ以下のプログラムを実行した場合にのみエラーを表示させることができますので、特定のフォルダ内の画面だけでエラーを表示させたい場合などにも有効です。
 
 

3.PHPのプログラムの中で設定する方法

 
レンタルサーバによっては、「.htaccess」の設定が有効にならない場合もあるでしょう。
そんな場合は、phpのプログラムに直接設定を記述することで対応も可能です。
 
この方法は、プログラム全体に影響させずに、特定のページだけ、特定のプログラムだけでエラーを表示させたい、という場合にも役に立ちます。
 
下記のソースコードを特定のプログラムに記述することで、そのプログラムだけでエラーが表示されます。
また、すべてのページでエラーを表示させたい場合に、例えば、WordPressであれば「wp-config.php」というすべてのページで読み込まれる設定ファイルがありますので、そのファイルの一番下の行などに下記のコマンドを記述することで全体でエラーの処理が行われるように設定することもできます。
 
記述するコードは、それぞれ以下の 1行です。
 
※エラーメッセージを表示させる場合
ini_set(‘display_errors’, ‘On’);
 
※エラーメッセージを表示させない場合
ini_set(‘display_errors’, ‘Off’);
 
 
ちなみに、「on/off」以外に「true/false」「1/0」でも設定できます。
いずれも前の方が「on」と同じ意味でエラーメッセージが表示されます。
 
 
また、WordPressにはデバッグモードを設定する方法が備わっていますので、その設定方法についても合わせてご確認ください。
WordPress 画面が真っ白になる不具合があった場合の対応の一つ デバッグモード
 
 

エラーメッセージを表示させた後の対処方法

 
ちなみに、ここで説明したエラーメッセージを表示させる処理を行うと、不具合が起こっている原因を示すエラーメッセージが表示されます。
 
それを見ながら、不具合の原因を特定して対処を行っていくのですが、ここで説明しているエラーメッセージを表示させたからと言って、不具合が解決するわけではないことはお断りしておきます。
 
エラーメッセージを読んで不具合の対応方法などが分からない場合は、掲示板などで質問すると言った方法などで対応をしてみてください。
 
 


 

エラーも出ない画面が真っ白な不具合の場合

 
header(“Location: $url”);を使う際はスペースの取扱いに注意が必要です。
 
この処理については、WordPressには関係ないことですが、画面が真っ白になる不具合がある方がこのページを見たときに参考になれば、と思い追記をしました。
 
PHPでの開発を行う際にリダイレクトの処理を書く際に「header(“Location: $url”);」を使う場合がありますが、その際にスペースの取扱いを間違えると、エラーも出力されず画面が真っ白になるだけという不具合が起こる場合があります。
 
こちらについて「PHP画面が真っ白 header(“Location: $url”);」に記事を書きましたので、併せてご覧ください。
 
 

プラグインが原因で起動しないWordPressを復旧させる方法解説 2014.10.04 追記

 
プラグインが原因で WordPressが起動しなくなったと分かっている場合、もしくは、それが原因じゃないかと疑わしい場合、簡単な方法で復旧させることを試せる方法もあります。
それを「プラグインが原因で起動しないWordPressを復旧させる方法解説」で記事にしていますので、そのような状況の方はあわせて参考にしてみてください。
 
 

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

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

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

 - WordPress

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

Contact Form 7の使い方・引数で情報を受け渡す方法

Contact Form 7で引数の情報をフォームに編集する方法を解説します。

WordPress・Contact Form7、MW WP Form共通 細かなデザイン調整方法

お問い合わせフォームプラグインの Contact Form7、MW WP Formにおけるラジオボタン、チェックボックスなどの見た目を調整する小技を紹介。

WordPressの functions.phpがある場所

WordPressのカスタマイズには大切な functions.phpですが、最初はその場所がどこなのか分かりませんのでその説明をしています。

WordPressのログイン画面 URLを変更する 管理画面に Basic認証を設定する

ログインURLは誰でも知っています。そのまま使うとリスクが高まりますのでログインURLを変更し Basic認証で二重チェックをする方法を解説。

Advanced Custom Fieldsの関数の全部の使い方を調べてみた

Advanced Custom Fieldsに用意されている関数を全て調べてみた。よく使うget_field、the_field以外にも多くの関数が用意されていて、フォームを作成することも可能。

WordPressの一覧ページのテンプレートの種類とファイルの設定

ファイル名に従って一覧ページのテンプレートは選択される。ルールに従ってファイル名を付けることで任意のカテゴリ、タクソノミーごとのテンプレートを指定可能。

WordPressの投稿データ(記事データ)の管理方法

投稿の登録の方法、投稿データの管理方法の解説。MetaManagerなどのプラグインを入れた場合の入力ボックスを表示させる方法についても解説します。

WordPressのおすすめの確認画面付きお問い合わせフォームプラグイン・MW WP Form

MW WP Formは確認画面が付いているオススメのフォームプラグインです。企業サイトを CMSとして構築する際にも利用できる実力派です。

Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法

Advanced custom Fieldsには登録できるフィールド数に上限があります。php.iniのmax_input_varsによる制限ですが、フィールドグループを分割することで解決できます。

WordPressのカテゴリ単位・フォルダ単位でBasic認証を設定する方法

カテゴリ単位でBasic認証を設定する方法の解説。WordPressのカテゴリはフォルダの実態がないですが、実は簡単な方法でプラグインも使わずにBasic認証を設置できます。