Bug #64882 [Com]: 'Could not open input file' error message goes to STDOUT

From: Date: Wed, 12 Aug 2020 10:36:02 +0000
Subject: Bug #64882 [Com]: 'Could not open input file' error message goes to STDOUT
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-228541@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=64882&edit=1 ID: 64882 Comment by: ja at lukasruzicka dot cz Reported by: weirdan at gmail dot com Summary: 'Could not open input file' error message goes to STDOUT Status: Verified Type: Bug Package: CGI/CLI related Operating System: Debian GNU/Linux PHP Version: 5.4.15 Block user comment: N Private report: N New Comment: I can confirm that the issue still persists in version 7.4.9. [user.name@server ~]$ php -v PHP 7.4.9 (cli) (built: Aug 4 2020 08:28:13) ( NTS ) ... [user.name@server ~]$ php -i | egrep '(display_errors|error_log)' display_errors => STDERR => STDERR error_log => no value => no value opcache.error_log => no value => no value [user.name@server ~]$ php non-existing-file.php > /dev/null [user.name@server ~]$ php non-existing-file.php Could not open input file: non-existing-file.php Previous Comments: ------------------------------------------------------------------------ [2016-06-21 11:29:17] cmb@php.net I can confirm this issue still exists with latest master. The culprit appears to be that php_printf() is used[1]. [1] <https://github.com/php/php-src/blob/php-7.0.7/sapi/cli/php_cli.c#L622> ------------------------------------------------------------------------ [2014-06-26 07:12:56] cweiske@php.net I can confirm this issue on 5.6.0RC1: $ ./inst/bin/php-5.6.0RC1 -i|grep display_errors display_errors => STDERR => STDERR $ ./inst/bin/php-5.6.0RC1 foo.php > /dev/null $ ------------------------------------------------------------------------ [2013-05-23 22:21:08] weirdan at gmail dot com Even though display_errors is set to STDOUT by default in php 5.3.25: weirdan@367-dsividov:~/Downloads$ php-5.3.25/sapi/cli/php -i -n | grep display_errors display_errors => STDOUT => STDOUT (and display_startup_errors are off): weirdan@367-dsividov:~/Downloads$ php-5.3.25/sapi/cli/php -i -n | grep display_startup display_startup_errors => Off => Off weirdan@367-dsividov:~/Downloads$ the following weirdan@367-dsividov:~/Downloads$ php-5.3.25/sapi/cli/php -n $(tempfile).php 2>/dev/null weirdan@367-dsividov:~/Downloads$ php-5.3.25/sapi/cli/php -n $(tempfile).php Could not open input file: /tmp/fileLHIKSE.php weirdan@367-dsividov:~/Downloads$ clearly shows that startup errors are actually going to STDERR But even I specify errors should go to STDERR, they go to STDOUT in php >= 5.4.0: weirdan@367-dsividov:~/Downloads$ for dir in ls -d php-5* | grep -v tar; do echo -n "$dir: "; $dir/sapi/cli/php -ddisplay_errors=STDERR - ddisplay_startup_errors=0 -n $(tempfile).php 2>/dev/null; echo; done; php-5.3.25: php-5.4.0: Could not open input file: /tmp/filedhceXV.php php-5.4.15: Could not open input file: /tmp/fileUv3FxW.php php-5.4.7: Could not open input file: /tmp/fileBH6TsZ.php weirdan@367-dsividov:~/Downloads$ to me it seems that startup errors started to go to STDOUT (regardless of display_errors and display_startup_errors value) in php-5.4.x and you can't really control it through either display_errors or display_startup_errors: weirdan@367-dsividov:~/Downloads$ php-5.4.0/sapi/cli/php - ddisplay_startup_errors=STDERR -ddisplay_errors=STDERR -i | egrep '(display_errors|display_startup_errors|error_log)' display_errors => STDERR => STDERR display_startup_errors => Off => Off error_log => no value => no value weirdan@367-dsividov:~/Downloads$ php-5.3.25/sapi/cli/php - ddisplay_startup_errors=STDERR -ddisplay_errors=STDERR -i | egrep '(display_errors|display_startup_errors|error_log)' display_errors => STDERR => STDERR display_startup_errors => Off => Off error_log => no value => no value weirdan@367-dsividov:~/Downloads$ php-5.4.0/sapi/cli/php -n - ddisplay_startup_errors=STDERR -ddisplay_errors=STDERR $(tempfile).php 2>/dev/null Could not open input file: /tmp/file7laZhC.php weirdan@367-dsividov:~/Downloads$ php-5.3.25/sapi/cli/php -n - ddisplay_startup_errors=STDERR -ddisplay_errors=STDERR $(tempfile).php 2>/dev/null weirdan@367-dsividov:~/Downloads$ ------------------------------------------------------------------------ [2013-05-23 18:30:40] aharvey@php.net This is controlled by the display_errors and error_log configuration variables: what do you get on each version if you run php -i | egrep '(display_errors|error_log)' ? For example, I get: adamh@swiftdesk7:/tmp$ php -i | egrep '(display_errors|error_log)' display_errors => STDOUT => STDOUT error_log => no value => no value And as you'd expect, errors are output to stdout. ------------------------------------------------------------------------ [2013-05-20 14:13:49] weirdan at gmail dot com Those folders contain vanilla PHP code, with NO Debian patches applied. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=64882 -- Edit this bug report at https://bugs.php.net/bug.php?id=64882&edit=1

« previous php.bugs (#228541) next »