- 2007-08-26 (日) 11:47
- PHP
via: Gregory Szorc’s blog – PHP Now Using Proper HTTP Status Codes on Error
PHP5.2.4ではPHPエラーでHTTP 500 Internal Server Errorが返ってくるようにです。
PHP5.2.4RC3で試してみると、以下のような「Fatal Error」や「Parse Error」などスクリプトの実行が停止するようなエラーではHTTP 500が返ってきました。
<?php // Fatal Error: Call to undefined function a() a(); ?>
<?php // Parse error: syntax error, unexpected '}' $f = true; if ($f) echo "a"; } ?>
例外投げてcatchしない場合も同じです。
<?php // Fatal error: Uncaught exception 'Exception' throw new Exception(); ?>
trigger_error()でE_USER_ERRORを発生させた場合もHTTP 500が出力されます。
<?php trigger_error(null, E_USER_ERROR); ?>
ちなみにNoticeやWarningではこれまでどおりHTTP 200が返ってきました。
mod_phpを使っている時は見ることが無かったInternal Server Errorですが、これからは目にすることがありそうです。
あとHTTP経由でPHPアプリケーションを監視している場合は、頭に入れておきましょう。
- Newer: PHPカンファレンス2007に参加してきました
- Older: PHPカンファレンス2007に参加します
コメント (Close):2
- yoshie 10-02-18 (木) 21:49
-
返すには返しますが、ErrorDocument 500は表示できないみたいなのですが、なにか対策などあるのでしょうか?
- shinbara 10-02-19 (金) 16:16
-
yoshieさん:
500 が出るのは Fatal Error や Parse Error、例外をキャッチしない場合ですので、
そもそもこういった状況が起こらないように開発しておくべきですね。さらに予防策としては、set_error_handler()やset_exception_handler() で
エラーページを出力するように仕込んでおくとより良いでしょう。
トラックバック:1
- このエントリーのトラックバックURL
- /blog/2007/08/php_524_error_http500.html/trackback
- Listed below are links to weblogs that reference
- PHP5.2.4ではPHPエラーでHTTP 500を返す from Shin x blog
- pingback from La Thinking Motion. - [php] http 500 error [TB] 09-10-16 (金) 0:02
-
[…] これも気になる。 PHP5.2.4ではPHPエラーでHTTP 500を返す Shin x blog […]