概要
驚くべきことに、GoogleやSOでこれについて何も見つけることができませんでした。PHP で例外をスローすると、コンソールに 2 回表示され、エラー メッセージとスタック トレースが表示されます。最初に印刷されたときは「PHP Fatal error: ...」と表示され、2 回目は単に「Fatal error: ...」と表示されます。これがApacheプラグインのバージョンであることはテストしていません。
例
安全のために一部の名前空間とパスは「...」で短縮されています。
$ php コード/com/.../tabular_data.php PHP 致命的なエラー: /home/codemonkey/.../tabular_data.php:56 でメッセージ「ファイル タイプがサポートされていません」を含むキャッチされない例外「例外」 スタックトレース: #0 /home/codemonkey/.../tabular_data.php(88): com\...\Tabular_Data->loadFromFile('/home/codemonke...', false) #1 /home/codemonkey/.../tabular_data.php(95): com\...\Tabular_Data::fromFile('/home/codemonke...') #2 {メイン} /home/codemonkey/.../tabular_data.php の 56 行目にスローされます 致命的なエラー: /home/codemonkey/.../tabular_data.php:56 でメッセージ「ファイル タイプがサポートされていません」を含むキャッチされない例外「例外」 スタックトレース: #0 /home/codemonkey/.../tabular_data.php(88): com\...\Tabular_Data->loadFromFile('/home/codemonke...', false) #1 /home/codemonkey/.../tabular_data.php(95): com\...\Tabular_Data::fromFile('/home/codemonke...') #2 {メイン} /home/codemonkey/.../tabular_data.php の 56 行目にスローされます
質問
エラーを出力するstderrとstdoutの両方に関係があると思います。いずれにせよ、PHP に一度だけ、できれば stderr に印刷するようにうまく指示するにはどうすればよいですか?
バージョン出力
PHP 5.3.9 (cli) (ビルド: 2012 年 1 月 11 日 17:09:48)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0、Copyright (c) 1998-2012 Zend Technologies
コード
http://pastebin.com/iBUGJ2eY
これは、名前空間とパスが foos に編集された二重の例外を表示する正確なコードです。このインストールでは、コマンドラインで常に二重の例外が発生することに注意してください。問題がPHP構成にあることはほぼ確実です。