First off, you are correct in mailing this problem to php-dev, as the follow information is not documented.
Your problem is most likey due to the fact, that webmin does set one of the following environment variables: SERVER_SOFTWARE SERVER_NAME GATEWAY_INTEFACE REQUEST_METHOD Currently the PHP CGI SAPI tries to determine if it is getting called by a webserver or by the command line. This is problematic, as you have seen. Due to these problems, a new CLI SAPI is being implemented, for all general purpose scripting, and I would highly recommend switching to such SAPI. Basicly, your problem is caused by the fact that the cgi sapi has detected that it is being called by a webserver by looking at the previously mentioned environment variables, and noticing that one of them haa a value. The UNIX shebang( #! ) just passses the script your are executing (in your case bbb.cgi) as an argument. When the CGI SAPI has detected it is being called by a webserver, it ignores all parameters. Instead, it determines which script to run by extracting it from the following environment variables (depending on your configuration): PATH_TRANSLATED SCRIPT_FILENAME You have three possible workarounds: 1. Unset the 4 defined env vars before executing bbb.cgi 2. Set PATH_TRANSLATED and SCRIPT_FILENAME to point to bbb.cgi 2. Create a wrapper script, as you have already done I Hope this clears up your problem. -- Jason T. Greene Internet Software Engineer <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> Use PHP: http://www.php.net On Sat, 2002-01-26 at 04:04, Prakash wrote: > Hi, > I'm trying to execute a Webmin script where I can use php as scripting > language... (It will be good to work with a language as php in a remote > administration server, as root! potentially dangerous but good!) > > Now the STRANGE problem: (seems to be some env variables (maybe I'm wrong) > when executing PHP as CGI...) > > When I execute a test.cgi program from Webmin, it's executed as root, as it > was from command line... that's good. The problem is that Webmin execute > well _every_ program I tried , EXCEPT php ! > > It seems that php needs some env variables to work well, and these variables > aren't provided from the Webmin interface, so to solve the problem I've > first to understand WHY php does not work... > > --------------------- > > Maybe I can better explain with 2 samples: > > > file aaa.cgi > > > > #!/bin/bash > > echo "Content-type: text/plain" > > echo > > echo "aaa" > > touch /home/test.txt > > > file bbb.cgi > > > > #!/usr/local/bin/php -q > > <?php > > echo "Content-type: text/plain\n\n"; > > echo "aaa\n"; > > $fd = fopen("/home/test.txt","w"); > > fclose($fd); > > ?> > > Now, the 2 programs are quite the same... (if test.txt does not exist...) > But, the 2 programs behave the same way only if you execute them _from > command line_. > If you execute them from the Webmin interface (very good for remote > administration, that lets execute programs as user root), they behave > differently: > aaa.cgi is the same, displays "aaa" on the remote web-browser, and creates > (well, if text.txt doesn't exist) a local file. > bbb.cgi does nothing, sends no http headers, no aaa, and does not create the > file... > > It seems that PHP needs some env variables, and without them, it suddenly > stops without parsing the file... am I right ?!? > > I've also tried to escape from this problem (until understood and solved) > with a third program: > > > file ccc.cgi > > > > #!/bin/bash > > /usr/bin/at -f /path/bbb.cgi now+1minute > > touch /home/test2.txt > > If I call ccc.cgi from Webmin and then from command line, the 2 executions > are scheduled properly, and look really the same (root user,same > program,...) but the task scheduled from Webmin is not executed > properly... > the php seems to stop with no output. > > Also with a file like this: > > > file ddd.cgi > > > > #!/bin/bash > > /path/bbb.cgi 2>&1 > test3.txt > > show that php really has no output on stdout or stderr (bbb.cgi is the IInd > file, and test3.txt is created, but 0 bytes long when invoked from Webmin!) > > So, the BIG problem is: if Webmin can execute all programs, running them as > root, WHY doesn't work well with php scripts ?!? > I think that the PHP need something, and not having it it suddenly stops... > but what ?!? > > Are there some developer that can help ?!? > > (Writing Webmin modules in perl is not good, if you work mainly with php, > and webmin can be the best remote administration utility...) > > thanks to all, > waiting for some news... > prakash > > > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > To contact the list administrators, e-mail: [EMAIL PROTECTED] > -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]