エス技研

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.

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

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

  関連記事

Theme My Loginでメール認証、管理者承認付の会員管理・基本編

会員管理をするプラグインTheme My Loginの解説。メール認証、管理者認証、reCAPTCHAによるいたずら登録を防止し、ログイン攻撃対応のセキュリティも備わっている。

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

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

WordPressのメディアの設定解説・uploadsフォルダの変更方法

メディアの設定に関する解説。管理画面から変更できなくなったuploadsフォルダの変更方法についても解説。

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

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

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

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

Comment Rating FieldでWordPressのコメントに口コミサイト機能を追加

口コミサイトを構築するためのプラグイン。評価点を投票する仕組みをコメント投稿機能に追加する方法で実現。口コミサイトを構築するには十分な機能を提供。

WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法

WordPressのカテゴリやタクソノミーに編集する項目を追加する方法の解説。Advanced Custom Fieldsを使うと簡単。テンプレートに記述する方法も解説。

Autoptimizeで簡単設定!HTML、JS、cssを圧縮しWordPress高速化!

Autoptimizeを使って簡単にHTML、JavaScript、CSSを圧縮しサイトの表示を高速化しよう!基本設定、拡張設定とあり柔軟な設定で多彩な環境に対応出来ます。

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

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

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

BackWPupその2。Jobのバックアップの基本部分と対象の設定についての解説。