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