|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-04-26 01:37 UTC] phpbugs at thequod dot de
Description:
------------
I've just tested PHP 5.1.3RC4-dev (cgi-fcgi) (built: Apr
26 2006 01:25:05).
The problem I've found seems to be related to:
- Reimplemented FastCGI interface. (Dmitry)
If I serve a binary file (image) through PHP, the
communication with the fastcgi server gets broken.
Reproduce code:
---------------
<?php
#header('Content-Type: image/gif');
echo file_get_contents( 'http://www.salonmarcharris.com/images/newburyhome.gif' );
?>
or
<?php
#header('Content-Type: image/gif');
echo file_get_contents( 'http://www.hahler.de/skins/blueyed/img/hahler/powl.jpg' );
?>
This is my fastcgi startup script:
#!/bin/sh
PHPRC="/XXX/webXXX/conf/php5"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /bin/php51_CVS-fcgi
This is how the server gets configured in /etc/apache2/mods-enabled/fastcgi.conf:
FastCgiServer /XXX/fcgi-scripts/webXXX/php5-fcgi-starter -user webXXX -group webXXX -pass-header HTTP_AUTHORIZATION -flush -idle-timeout 60
I've installed libapache2-mod-fastcgi 2.4.2-6 (Ubuntu Breezy).
Expected result:
----------------
Only the binary (image) data, without the "attached" "The
server encountered an internal error or misconfiguration
and was unable to complete your request." error message.
Actual result:
--------------
Binary data from the image and then the internal server
error.
These are errors from the error log:
[Wed Apr 26 03:16:46 2006] [error] [client 83.135.205.222]
FastCGI: comm with
server "/XXX/fcgi-scripts/webXXX/php5-fcgi-starter"
aborted: protocol error: invalid version: 152 !=
FCGI_VERSION(1)
(with the first URL provided above)
or
[Wed Apr 26 03:21:15 2006] [error] [client 83.135.205.222]
(104)Connection reset by peer: FastCGI: comm with
server "/XXX/fcgi-scripts/webXXX/php5-fcgi-starter"
aborted: read failed
(with the second URL provided above)
-----
My .configure:
./configure \
--prefix=/home/XXX/make/php5 \
--with-config-file-path=/etc/php5 \
--with-pear=/XXX/lib/php5 \
--enable-calendar \
--enable-exif \
--enable-fastcgi \
--enable-force-cgi-redirect \
--enable-gd-native-ttf \
--enable-inline-optimization \
--enable-mbstring=all \
--enable-mbregex \
--enable-memcache \
--enable-memory-limit \
--enable-sockets \
--enable-track-vars \
--with-bz2 \
--with-dom \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv \
--with-imap \
--with-imap-ssl \
--with-jpeg-6b \
--with-jpeg-dir \
--with-kerberos \
--with-ldap \
--with-ldap-sasl \
--with-mcrypt \
--with-mysql \
--with-openssl \
--with-png-dir \
--without-mm \
--with-sqlite \
--with-pcre-regex \
--with-ttf \
--with-zlib \
--with-zlib-dir=/bin
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 18:00:02 2025 UTC |
Thank you. It's fixed indeed for those cases, but I just experienced a similar problem, when POSTing to any page I've found. It outputs the following at the end of the generated HTML: <fieldset> <div class="label"><label for="blog_allowblogcss">Erlaube angepasste CSS Datei fr Blogs:</label></div> <div class="input"><input name="blog_allowblogcss" type="checkbox" value<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>200 OK</title> </head><body> <h1>OK</h1> <p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p> <p>Please contact the server administrator, webmaster@thequod.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.</p> <p>More information about this error may be available in the server error log.</p> <hr> <address>Apache/2.0.54 (Ubuntu) mod_chroot/0.5 DAV/2 mod_fastcgi/2.4.2 mod_jk2/2.0.4 mod_ssl/2.0.54 OpenSSL/0.9.7g Server at www.hahler.de Port 443</address> </body></html> It can be reproduced here with this script: ------------------------------- <?php var_dump( $_POST ); ?> <form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post"> <input type="text" name="test_input" /> <input type="submit" /> </form> <?php for( $i = 0; $i < 10000; $i++ ) { echo $i; } ?> ------------------------------- I'm using the latest CVS tag here (with your "real fix").