|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-04-20 12:03 UTC] bogus_idp at yahoo dot fr
Description: ------------ The Fast CGI standard require that error be reported through the FastCGI connection as a Stderr data stream. But PHP Fast CGI processes still write errors to original stderr (file handle 3) which prevent from clean standard centralized FCGI logging, especially when the Fast CGI PHP process is not started by the web server (remote Fast CGI). In most cases, it makes debugging PHP scripts impossible. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 11:00:02 2025 UTC |
This one turns out to be easy to fix, thus: --- cgi_main.c.orig Mon Jan 10 14:57:04 2005 +++ cgi_main.c Mon Jan 10 14:53:44 2005 @@ -481,7 +481,14 @@ static void sapi_cgi_log_message(char *message) { - fprintf(stderr, "%s\n", message); +#if PHP_FASTCGI + if (!FCGX_IsCGI()) { + FCGX_Request *request = (FCGX_Request *)SG(server_context); + FCGX_FPrintF( request->err, "%s\n", message ); + /* ignore return code */ + } else +#endif /* PHP_FASTCGI */ + fprintf(stderr, "%s\n", message); } static int sapi_cgi_deactivate(TSRMLS_D) However, there is another similar bug, which is that a stream opened on "php://stderr" should also direct its output to the FCGI error stream (rather than just to file descriptor #2). -- Chris Lightfoot