ID: 13035 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open Bug Type: Apache related Operating System: Linux 2.4.6 PHP Version: 4.0.6 New Comment:
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. Previous Comments: ------------------------------------------------------------------------ [2002-03-07 14:26:29] [EMAIL PROTECTED] Yes with PHP 4.1.2 the problem occures still for me. ------------------------------------------------------------------------ [2002-01-17 19:32:26] [EMAIL PROTECTED] I dont know. I dont have 4.1.1 compiled as a CGI anywhere, won't have time to do it and test it until next week probably. ------------------------------------------------------------------------ [2002-01-12 14:46:54] [EMAIL PROTECTED] Is still still valid with latest apache and php? ------------------------------------------------------------------------ [2001-08-29 12:12:13] [EMAIL PROTECTED] If PHP is used as a CGI program via: Action php-script /cgi-bin/php AddHandler php-script .php .php3 any .php page which is not found results in 500 SERVER ERROR in the browser instead of 404 NOT FOUND. The php binary is returning nothing in its response to this situation. To wit: The Apache error_log reports "Premature end of script headers" The script_log (enabled with Apache's ScriptLog directive) reports: %% [Wed Aug 29 12:09:58 2001] GET /cgi-bin/php/nothere.php HTTP/1.0 %% 500 /usr/local/httpd/cgi-bin/php %request Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Charset: iso-8859-1,*,utf-8 Accept-Encoding: gzip Accept-Language: en Connection: Keep-Alive Host: localhost User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.4.6 i686) %response ### php was compiled with "'./configure' '--with-mysql=/usr' '--with-gd' '--with-imagick' '--enable-discard-path' '--enable-force-cgi-redirect'" ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=13035&edit=1