WordPress 画面が真っ白になる不具合があった場合の対応の一つ
2017/04/29
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が動かない」に記事を書いていますので、詳細はこちらを参照してみてください。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
Contact Form 7の使い方・引数で情報を受け渡す方法
Contact Form 7で引数の情報をフォームに編集する方法を解説します。
-
Captchaを使って WordPressのコメントスパム対策をする
コメントスパム対策として入力させない対策の一つとしてCAPTCHAという方法がありそれを簡単に実装できるプラグインCaptchaの解説です。
-
WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成
WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成する方法を説明しています。
-
Better Delete Revisionを使って WordPressのリビジョンを削除する方法
自動的に溜まるリビジョンは Better Delete Revisionを使うことで簡単に削除することが出来ます。表示の重さを軽減したり、バックアップファイルのスリム化に貢献します。
-
WordPressのユーザ名を後から変更する方法。adminの使用は危険。
運用中のユーザ名を変更する方法を解説。かつてのデフォルト設定だった「admin」は誰もが使うIDのため非常に危険です。今からでも変更しましょう。
-
WordPressのパーマリンク設定の考え方
基本設定の一つであるパーマリンクの設定について解説。パーマリンクはURLを決定づける重要な項目ですので、設定の意味を理解して希望するURLになるよう設定しましょう。
-
WordPressのバージョンアップをしたら「the_content」でコンテンツが表示されなくなった
「the_content」でコンテンツが表示されないのは仕様が変更されたためでプログラムの修正が必要です。
-
WordPress記事のまとめ一覧・インストール、プラグイン、カスタマイズの記事
WordPress記事のまとめ。WordPressの記事が多くなってきたので記事の説明を追加した一覧記事を作成しました。各設定から機能のカスタマイズ、運用ノウハウまで参考に!
-
30分でWordPressを引越し・他のサーバに引越しや開発環境の構築手順
WordPressを他のサーバに引っ越しするとき、テスト環境を作るときなどの作業手順をまとめました。プラグインを使う方法もありますが手作業でも簡単です。
-
BackWPupでバックアップ・全体バックアップ具体的設定例
BackWPupその7。ファイル、DB全体をバックアップする具体的事例での説明です。