mod_perl: %ENV a system()

Jan Kasprzak kas na fi.muni.cz
Čtvrtek Srpen 11 18:03:25 CEST 2005


	Zdravim,

	mam problem s prechodem na mod_perl2 - vypada to, ze
ackoli (po PerlOptions SetupEnv) mam v %ENV vsechno co ocekavam,
nedari se mi to predat novemu procesu, ktery spustim treba
pres rouru v open() nebo pres system():

	Priklad kodu:

-------------------------------------------------------
#!/usr/bin/perl -w
my $q = new CGI;

print "Content-Type: text/plain\n\n";

print "My ENV =================\n";
for (sort keys %ENV) {
        print $_, " => '", $ENV{$_}, "'\n";
}

system "/bin/bash -c set >/tmp/set";

print "\nPassed ENV==============\n";
open (PIPE, "/bin/bash -c set|");
print <PIPE>;
close PIPE;
print "========================\n";
-------------------------------------------------------

	Pod "My ENV" mam co ocekavam (vcetne veci jako QUERY_STRING
a dalsi, pod "Passed ENV" a v /tmp/set mam jen par internich veci
shellu. Ale je zajimave, ze ruzne veci ktere jsem exportoval
predtim (LD_LIBRARY_PATH, ORACLE_HOME, atd.) jsou predany korektne.
Nepredavaji se jen interni veci Apache. Jak tohle muzu predat,
pokud chci, aby potomek volany pres open() nebo system() dostal
take QUERY_STRING a dalsi CGI promenne?

	Diky,

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/   Czech Linux Homepage: http://www.linux.cz/ |
>>> $ cd my-kernel-tree-2.6                                              <<<
>>> $ dotest /path/to/mbox  # yes, Linus has no taste in naming scripts  <<<


Další informace o konferenci Linux