ID:               28227
 Updated by:       [EMAIL PROTECTED]
 Reported By:      lukem at NetBSD dot org
-Status:           Open
+Status:           Closed
 Bug Type:         CGI related
 Operating System: *
 PHP Version:      4CVS, 5CVS (2005-02-04)
 New Comment:

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------

[2004-12-17 03:02:28] lukem at NetBSD dot org

This bug is still present in 4.3.10 as well.

Note that NetBSD's pkgsrc system has been using the patch I provided
for a few months now, and we haven't received any reports of problems
with PHP with that patch when running as a:
* php.so module under Apache
* php CGI under Apache
* php CGI under web servers that don't support the non-standard
SCRIPT_FILENAME


Please consider applying this patch, because without it PHP is useless
as a CGI except under Apache & IIS.

------------------------------------------------------------------------

[2004-12-13 20:33:52] jbardin at hsc dot usf dot edu

Problem still exists in PHP-5.0.2 on SunOS

------------------------------------------------------------------------

[2004-05-03 19:47:16] shane at caraveo dot com

The current code does not rely on script_filename, script_filename is
only used as a shortcut if it is available.  Otherwise, the init
function tries to determine the real script path, IF the fix_pathinfo
ini setting is on.  The current code was only tested under apache and
iis.

That said, the patch looks ok, and very likely improves the situation,
but needs some good testing on apache/mod_php, apache/cgi, iis/isapi
and iis/cgi, with various changes of configuration in php.ini (discard
path, fix pathinfo, etc.).  Unfortunately I have zero time.

-Shane

------------------------------------------------------------------------

[2004-05-03 04:25:48] lukem at NetBSD dot org

Here's the patch:
 
http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/pkgsrc/www/php4/patches/patch-aa?rev=1.10&content-type=text/plain

------------------------------------------------------------------------

[2004-04-30 02:11:47] lukem at NetBSD dot org

Description:
------------
I upgraded PHP from 4.2.3 to 4.3.6 and I started getting the error "No
input file specified." from the php-as-cgi whilst running under a
(fairly minimal and small) web server called bozohttpd.

Further investigation reveals that
sapi/cgi/cgi_main.c::init_request_info() is using the existance of
SCRIPT_FILENAME to determine if php is running as a CGI.

However, the "defacto standard" for CGI/1.1:
   http://cgi-spec.golux.com/
makes no mention of SCRIPT_FILENAME, only SCRIPT_NAME.
Thus, when a web server that is used to run php as a CGI doesn't
support SCRIPT_FILENAME (which is reasonable - see the specs above),
php refuses to function and fails with the error above.

Some research into other web servers indicates that none of them
support SCRIPT_FILENAME.  These servers include:
   thttpd, mini_httpd, w3c-httpd, OmniHTTPd - (PHP PR 25833), Xitami
(PHP PR 25305)

This issue is also alluded to in the "command line" documentation on
your web site:
  http://www.php.net/features.commandline
(search for "no input file").

In summary, PHP 4.3.6 should not be relying solely upon SCRIPT_FILENAME
to determine if it's running as a CGI.
I have a patch to fix this issue - rev 1.10 of NetBSD's
pkgsrc/www/php4/patches/patch-aa - which I can provide if necessary.

Cheers,
Luke Mewburn.





------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28227&edit=1

Reply via email to