I have searched through all the web docs and Usenet, but not found anything that suggests anything special has to be done in mod_perl scripts that need to set $ENV{PATH}
My specific example is that I need to add /usr/local/bin to PATH, but I''ve been unable to find a way to do this, looks like mod_perl scripts execute the line that changes $ENV{PATH}, but when a qx() back-tick command is executed, that command is executed under the value of the original path. One lone posting on Usenet wondered whether PerlSetEnv in Apache Config is the only way to fix this, but that seems like a too big a hammer. In case it helps, here's a simple test on Fedora FC7 system (more version info at end): #!/usr/bin/perl -Tw print "Content-type: text/plain\n\n"; my $command = "basename"; foreach ( "/bin:", "/invalid/dir:" ) { $ENV{PATH} = $_; print "------ Testing command '$command', path $ENV{PATH}\n"; my $string = `$command testing` || ''; print " failed to execute '$command', \$? is $?/" . ($? >> 8) . " : $!\n" if ($? != 0); print " output \$string is: $string\n"; } exit(0); ------------------------------------------------ When run from the command line, I get the correct output: Content-type: text/plain ------ Testing command 'basename', path /bin: output $string is: testing ------ Testing command 'basename', path /invalid/dir: [Wed Jan 16 17:13:39 2008] script.pl: Can't exec "basename": No such file or directory at /home/cgi/script.pl line 12. failed to execute 'basename', $? is -1/16777215 : No such file or directory output $string is: ------------------------------------------------------- But when I run this under Apache and mod_perl, I get this output - /bin is still in the PATH even after removal: ------ Testing command 'basename', path /bin: output $string is: testing ------ Testing command 'basename', path /invalid/dir: output $string is: testing ------------------------------------------------------- /perl-status output snippet: Embedded Perl version v5.8.8 for Apache/2.2.6 Under the "perl-script" handler, the environment is: MOD_PERL = mod_perl/2.0.3 MOD_PERL_API_VERSION = 2 PATH = /sbin:/usr/sbin:/bin:/usr/bin Any help appreciated! [Please ignore one duplicate email if it shows up - sent before subscribed]