« Fedora7,CentOS5でパッケージ管理のaptがなくなった??? | メイン | CentOS5で最小ネットワークインストール構成に後からXWindowを入れる »

PHPで画面が真っ白になる時はエラーを疑え!

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

開発サーバーであれば画面に表示するように変更してもいいだろう(というか変更すべき!)

トラックバック

このエントリーのトラックバックURL:
http://rutake.ddo.jp/blog/mt-tb.cgi/136

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年09月12日 23:04に投稿されたエントリーのページです。

ひとつ前の投稿は「Fedora7,CentOS5でパッケージ管理のaptがなくなった???」です。

次の投稿は「CentOS5で最小ネットワークインストール構成に後からXWindowを入れる」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。