Home > PHP > PHP5.2.4ではPHPエラーでHTTP 500を返す

PHP5.2.4ではPHPエラーでHTTP 500を返す

  • 2007-08-26 (日) 11:47
  • PHP
この記事の所要時間: 14

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アプリケーションを監視している場合は、頭に入れておきましょう。

Pocket

follow us in feedly

コメント (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 […]

Home > PHP > PHP5.2.4ではPHPエラーでHTTP 500を返す

検索
フィード
メタ情報

Return to page top