PHPで画面にまったく何も表示されずソースを見てもほとんど何も出力されていない時がある。
実はこれ複数原因があるが、以下見ていこう。
まずは出力の文字コードが違う場合IE6だと画面が真っ白になる。この場合はソースの表示をさせると本来出力される内容が出てくるのでその場合はエンコーディングの自動選択を選ぶ(もしくはわかっていればそのエンコードを指定する)
次にソースを見ても手がかりとなるような出力がない場合だが、コレは単純でphp.iniでエラーがApacheのエラーログに出力されるようになっているだけだ。エラー情報は開発中は画面に出たほうがうれしいのだが、運用時に出してしまうとPHPのバージョンがわかってしまったりして思わぬ攻撃の手がかりを与えることになりかねない。ほとんどのディストリビューションのデフォルトではPHPのエラーはApacheのエラーログに出力されるようになっている。
もし出力するようにしたければphp.iniの以下の場所を変えて、Apacheを再起動すればよい。
display_errors = Off←On
RedHat系のディストリビューション(Fedora,CentOS)であればエラーログの場所は下記にあるはず。
/var/log/httpd/error.log
VineLinuxではApacheのバージョンが1か2によるが
/var/log/apache/error.log
/var/log/apache2/error.log
開発サーバーであれば画面に表示するように変更してもいいだろう(というか変更すべき!)