#39277 [Fbk->Opn]: php-cgi does not parse command line arguments when running under Apache
| From: | nisoi at mail dot ru | Date: | Sat, 11 Nov 2006 16:13:48 +0000 |
| Subject: | #39277 [Fbk->Opn]: php-cgi does not parse command line arguments when running under Apache | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-104824@lists.php.net to get a copy of this message | ||
ID: 39277
User updated by: nisoi at mail dot ru
Reported By: nisoi at mail dot ru
-Status: Feedback
+Status: Open
Bug Type: CGI related
Operating System: FreeBsd 6.1
PHP Version: 4.4.4
New Comment:
Well, you are right. Please forgive me for this.
But if so, then there is another... ehhm.. inconvenience. It is
impossible to set custom php.ini via .htaccess for some directory.
When I use in .htaccess:
SetEnv PHPRC /home/user/public_html/
and if I redirect all *.php requests to /home/http/php4-cgi (which is
just a symlink to php-cgi), Apache renames PHPRC to REDIRECT_PHPRC,
because requests are redirected to another script. Thus, php does not
recognize this variable and uses default /usr/local/etc/php.ini.
Of course, I can use a sh script instead of /home/http/php4-cgi, and
export PHPRC there. This works. But there is absolutely unnecessary sh
process in this case.
As a workaround, php could either recognize REDIRECT_PHPRC, or use -C
argument in command line while working in CGI mode.
Previous Comments:
------------------------------------------------------------------------
[2006-11-11 12:40:38] tony2001@php.net
>But PHP-5.1.2-CGI does interpret command line arguments
> while running under Apache
No, it doesn't. It's extremely easy to show:
# export SERVER_SOFTWARE=1
# ./sapi/cgi/php -i
Status: 404
X-Powered-By: PHP/5.1.2
Content-type: text/html
No input file specified.
# unset SERVER_SOFTWARE
# ./sapi/cgi/php -i
X-Powered-By: PHP/5.1.2
Content-type: text/html
<!DOCTYPE html PUBLIC ..........
------------------------------------------------------------------------
[2006-11-11 12:21:30] nisoi at mail dot ru
But PHP-5.1.2-CGI does interpret command line arguments while running
under Apache. Also, php-4.4.2-cgi (not php-cli!) interprets these
arguments while running from command line. Is this expected behavior
too?
I mean, all three ways PHP-cgis work cannot be correct at the same
time.
------------------------------------------------------------------------
[2006-11-11 00:52:55] tony2001@php.net
Expected behaviour.
PHP CGI doesn't use commandline parameters when run in CGI mode (but it
does use them when run in console mode).
------------------------------------------------------------------------
[2006-10-31 12:17:21] nisoi at mail dot ru
I just tested this issue under Gentoo Linux. Same things happen: PHP
does not pay any attention to command line arguments passed to php-cgi
running under Apache.
------------------------------------------------------------------------
[2006-10-27 11:02:42] nisoi at mail dot ru
Description:
------------
PHP-4.4.4-cgi does not parse command line arguments when run under
Apache (but parses it when run from shell). Php5 works fine in same
situation.
I run php-4.4.4 as cgi under Apache/1.3.34. All requests for *.php are
redirected to php-cgi with
Action php-script /cgi-bin/php4
/cgi-bin/php4 looks like this:
=== /cgi-bin/php4 ==>
#!/usr/local/php4/bin/php-cgi
-c/home/scrtest/www/site1/public_html/php-c.ini
<== /cgi-bin/php4 ===
But phpinfo() says that it is using default config from
/usr/local/php4/etc/php-cgi.ini. No other arguments are working:
neither "-n", neither "-h", nor anything.
Even this trick:
=== /cgi-bin/php4 ==>
#!/bin/sh
/usr/local/php4/bin/php-cgi
-c/home/scrtest/www/site1/public_html/php-c.ini
<== /cgi-bin/php4 ===
does not make php-cgi to take it's arguments.
When I run same command from shell, php-cgi parses it's arguments
correctly.
Reproduce code:
---------------
<?php
phpinfo();
?>
Expected result:
----------------
Want to see /home/scrtest/www/site1/public_html/php-c.ini as
configuration file.
Actual result:
--------------
See /usr/local/php4/etc/php-cgi.ini as configuration file.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39277&edit=1