PHPの組み込みサーバーでエラー出力に奇妙な問題があります。本当にバグのようですが、100%確実ではありません。PHPローカルサーバ - ダブルエラー - バグかどうか?
スクリプト例:
<?php
error_reporting(-1);
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('ignore_repeated_errors', true);
trigger_error('my notice', E_USER_NOTICE);
trigger_error('my warning', E_USER_WARNING);
コンソール(php example.php
)にこのコードを実行する場合は、以下の、期待される、出力を得る:あなたは、このスクリプトを実行する場合は、しかし、
PHP Notice: my notice in C:\php\example.php on line 7
PHP Stack trace:
PHP 1. {main}() C:\php\example.php:0
PHP 2. trigger_error('my notice', 1024) C:\php\example.php:7
PHP Warning: my warning in C:\php\example.php on line 8
PHP Stack trace:
PHP 1. {main}() C:\php\example.php:0
PHP 2. trigger_error('my warning', 512) C:\php\example.php:8
をWebページ(php -S localhost:9000 example.php
)を開き、URLを開くと、コンソールに次の出力が表示されます。
PHP 7.1.10 Development Server started at Tue Oct 10 19:46:05 2017
Listening on http://localhost:9000
Document root is C:\php
Press Ctrl-C to quit.
[Tue Oct 10 19:46:06 2017] PHP Notice: my notice in C:\php\example.php on line 7
[Tue Oct 10 19:46:06 2017] PHP Stack trace:
[Tue Oct 10 19:46:06 2017] PHP 1. {main}() C:\php\example.php:0
[Tue Oct 10 19:46:06 2017] PHP 2. trigger_error('my notice', 1024) C:\php\example.php:7
[Tue Oct 10 19:46:06 2017] PHP Warning: my warning in C:\php\example.php on line 8
[Tue Oct 10 19:46:06 2017] PHP Stack trace:
[Tue Oct 10 19:46:06 2017] PHP 1. {main}() C:\php\example.php:0
[Tue Oct 10 19:46:06 2017] PHP 2. trigger_error('my warning', 512) C:\php\example.php:8
[Tue Oct 10 19:46:07 2017] PHP Notice: my notice in C:\php\example.php on line 7
[Tue Oct 10 19:46:07 2017] PHP Stack trace:
[Tue Oct 10 19:46:07 2017] PHP 1. {main}() C:\php\example.php:0
[Tue Oct 10 19:46:07 2017] PHP 2. trigger_error('my notice', 1024) C:\php\example.php:7
[Tue Oct 10 19:46:07 2017] PHP Warning: my warning in C:\php\example.php on line 8
[Tue Oct 10 19:46:07 2017] PHP Stack trace:
[Tue Oct 10 19:46:07 2017] PHP 1. {main}() C:\php\example.php:0
[Tue Oct 10 19:46:07 2017] PHP 2. trigger_error('my warning', 512) C:\php\example.php:8
例のスクリプトの末尾にtrigger_error('my error', E_USER_ERROR);
を追加すると、二重出力が固定されるというのが最も奇妙なことです。
この原因は何ですか? INIの設定でバグか奇妙なことはありますか?
他のすべてのものの前に、ただ1つのHTTP要求があることを確認してください。あなたが掲示したアウトプットは、2回のリクエストでは正常です。 – axiac
あなた自身で試しましたか? – jurchiks
Dunnoがこれを絞り込んだのですが、私はLinuxのボックスでこれを複製することができませんでした。 –