レンタルサーバーに配置したスクリプトでエラーが発生した場合、「HTTP 500 内部サーバー エラー」と表示されるだけで、「Fatal error:…」の具体的なエラーメッセージは表示されないのが普通です。
この「HTTP 500 内部サーバー エラー」は、「詳しいエラーの内容は表示しませんが、とりあえずエラーが発生していることだけお伝えします」という趣旨のメッセージです。
これは不親切ではなく、実運用環境ではエラーメッセージを表示しないというセキュリティを考慮した運用です。エラーメッセージはハッカーなど悪意のあるユーザーに役立つ情報が多く含まれているためです。
こうしたエラーはテスト環境で検証して修正するのが筋ですが、応急処置として、配置先のレンタルサーバーでエラーを表示させてスクリプト修正の手がかりをつかみたい場合、次のコードをスクリプトの先頭に記述して一時的にエラーを表示させる方法もあります。
<?php ini_set("display_errors", On); error_reporting(E_ALL); …
2つ目のerror_reporting…は記述しなくてもエラーメッセージが表示される場合もあります。あくまで応急処置なので、くれぐれもスクリプトの修正後に上記の設定をそのまま残さないようにしてください。
定番のエラーメッセージを予習したい方におすすめの本
「HTTP 500 内部サーバー エラー」に限りませんがPHPスクリプトの作成は「エラーとの闘い」です。自由にコードを入力するのは簡単ですが、時間がかかるのは「なぜ正しく表示されない?」「どこがおかしい?」の解決です。これから出会うかもしれないエラーを予習しておきたい方にはこの本をおすすめします(私が書いた本ですが)。定番のエラーや入力ミスの訂正などをクイズ風にまとめてあります。暇なときに読んでみてください。
「PHP「直す力」養成ドリル」について詳しくはこちら