PHPで画面が真っ白になる場合、色々原因が考えられます。
「Authorization Required」「Internal Server Error」など、メッセージが表示される場合は、サーバーのエラーです。サーバー側の設定、ファイルの設定などを確認しましょう。
ログとエラーメッセージ確認する
まずは、基本に戻り、サーバーのエラーログ確認しよう。
ログがヒントになる場合がよくあります。エラーログを確認しましょう。
また、画面が真っ白になっているという事は、サーバーの初期設定で、エラーを表示しない設定となっています。
.htaccessまたは、php.ini設定でdisplay_errorsを有効にしましょう。
.htaccessファイルとは
「htaccess」(エイチティアクセス)とは、現在多くのWEBサーバーで使用されている「Apache」(アパッチ)を制御する設定ファイルの1つで、実際のファイル名は「.htaccess」(先頭がドット)となります。
レンタルサーバーなどで、自分専用にWEBサーバーの設定を変えたい場合は、「httpd.confファイルの変更」ではなく「.htaccessファイル」を格納することで、WEBサーバの設定変更(一部)を行うことができます。引用元: htaccessとは? CMAN
さくらの共用サーバーとXSERVERで設定例を記載しますので、ご参考ください。
さくらの共用サーバーとXSERVERは、.htaccessに記載すると
エラーとなりますのでphp.iniに設定します。
さくらのレンタルサーバー
さくらサーバーの管理画面、左メニューのアプリケーションの設定、PHP設定の編集をクリックします。
PHP設定ファイルの編集画面が表示されたら、php.iniファイルパス下部の入力枠に
display_errors = On を記載し、保存するをクリックします。
php.iniファイルパスの場所にphp.iniファイルができますので、
表示するサイトのディレクトリにファイルをおきます。
XSERVERの場合
Xサーバーの管理画面、日理メニューのphp.ini設定をクリックします。
設定するドメインを選択し、php.iniの状態がoffとなっている場合は、
ONにするボタンをクリックします。
ONにした後、php.ini設定変更をクリックし、
display_errorsをonにしたら、最下部の設定するボタンをクリックして完了です。
Parse errorやページが真っ白になる代表的なケース
もし、別サーバーで表示される場合は、サーバーの設定などのケースも考えられます。
代表的なケースを記載しますので、下記の内容もチェックしてみてください。
1、.htaccessの記載が間違っている
.htaccessはサーバーによって記載が違います。
サーバー移転の際は記載の方法を確認しましょう。
2、PHPの記述、内部エラー
サーバーにアップして確認する際に多いエラーです。
上記のログやエラー内容を確認しましょう。
3、smartyなどPHPライブラリが入っていない
内部エラーにも関係する事ですが、smartyなどPHPライブラリが入っていない、
またはパスが間違っている場合も考えられます。
その場合、エラーメッセージが参考になると思います。
display_errorsを有効にして確認しましょう。
4、phpのバージョンが違う
昔のファイルを別サーバーに移行する際に多いケースです。
XSERVERやさくらサーバーなど、管理画面でバージョンを設定できます。
※PHPバージョン変更は、さくらの共用サーバーの場合、プランによって、
他サイトに影響します。慎重に行いましょう。
5、XML宣言の記載があるのに設定していない場合
phpファイルで、xml宣言の記載を行うと、
初めの PHPコード(shorttag)と勘違いしてしまい、エラーが発生します。
XML宣言とは
XML宣言とは、XML文書の先頭に付き、その文書がXML文書であることを明確に示す文字列である。以下がXML宣言の例である。
<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
XML宣言は処理命令と似ているが、処理命令ではない。
XML宣言は必ず先頭に記述する必要がある。それより手前に空白文字や空行があってはならない。
version=の内容は常に1.0である。またXML宣言中で省略はできない。
引用元: XML用語事典 XML宣言
対策方法は3つあります。XML宣言の削除、また、echoを追加する方法とshorttagを無効にする方法です。
一番簡単なのはXML宣言を削除する方法です。
echoを追加する方法
XML宣言を修正可能な場合は、HTML内下記のように記載します。
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
iniファイルに追加する方法
short_open_tag=Off
をiniファイルに追加します。
XSERVERを例にすると、管理画面のphp.ini直接編集の中に記載します。
記載したら「設定する」ボタンで完了です。
修正後、キャッシュが残る場合があるので、違うブラウザでも確認しましょう。