#13035 [Com]: 404 on a .php results in SERVER ERROR when using php as a cgi
| From: | morissette at dmsolutions dot ca | Date: | Fri, 01 Nov 2002 15:34:17 +0000 |
| Subject: | #13035 [Com]: 404 on a .php results in SERVER ERROR when using php as a cgi | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-23905@lists.php.net to get a copy of this message | ||
ID: 13035
Comment by: morissette@dmsolutions.ca
Reported By: sbeam@ne.mediaone.net
Status: Feedback
Bug Type: Other web server
Operating System: Linux 2.4.6
PHP Version: 4.2.3
New Comment:
OK, I downloaded and built yesterday's CVS snapshot (php4-200210311500)
and the problem is still present: pointing the PHP CGI to a
non-existing .php file produces no output, which results in a "missing
HTTP headers" error in the Apache error_log.
I did not submit the original bug, so I'm not able to reopen this bug
myself.
BTW, I tried this with an old PHP 3.0.16 CGI to see what it used to do,
and PHP3 would produce the following output when pointed to a
non-existing PHP file... not quite as good as a real 404 error, but
better than nothing:
X-Powered-By: PHP/3.0.16
Content-type: text/html
<br>
<b>Fatal error</b>: Unable to open ttt.php in <b>-</b> on line
<b>0</b><br>
Previous Comments:
------------------------------------------------------------------------
[2002-10-29 04:24:46] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-latest.zip
------------------------------------------------------------------------
[2002-10-28 23:27:23] yohgaki@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-latest.zip
Reopen to confirm if the problem is in 4.3.0-dev
------------------------------------------------------------------------
[2002-10-24 08:35:35] morissette@dmsolutions.ca
I would like the PHP developers to please consider reopening this bug.
I don't think it is bogus. It still happens with PHP 4.2.x:
The problem is simple: when using PHP as a CGI and pointing to a
non-existing PHP file, instead of a 404 error we receive an empty page
or a 500 - Internal Server error from the PHP CGI due to missing HTTP
headers.
I think the solution is that the PHP CGI should be modified to return a
404 error header when it cannot find the .php file that it is being
pointed to.
------------------------------------------------------------------------
[2002-06-13 18:04:46] sniper@php.net
Sorry, but the bug system is not the appropriate forum for asking
support questions. Your problem does not imply a bug in PHP itself.
For a list of more appropriate places to ask for help using PHP,
please visit http://www.php.net/support.php
Thank you for your interest in PHP.
------------------------------------------------------------------------
[2002-03-26 18:50:25] morissette@dmsolutions.ca
This problem has been annoying me for a while and is still present in
4.1.2 (CGI) at least. I stepped through the code in a debugger and
found out that when the php script doesn't exist then zend_error() is
called at the lower-level, but the zend_catch in cgi_main.c catches the
error and the php execution ends without any HTTP headers or
anything... hence the '500 Server Error'.
I don't know enough about the way Zend works to propose a patch, but I
found a nice WORKAROUND... in your php.ini, set
log_errors=On;
This way, the error message will be sent to your Apache error_log, and
the php execution will end nicely with proper HTTP headers, but an
empty document, which is better than a 500 server error.
------------------------------------------------------------------------
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
http://bugs.php.net/13035
--
Edit this bug report at http://bugs.php.net/?id=13035&edit=1