http://www.perlmonks.org?node_id=994253


in reply to Re: CGI script connecting via terminal but not via browser
in thread CGI script connecting via terminal but not via browser

Thanks Aaron. The Perl version is the same on both environments (5.8.8), however the PATH variable is significantly different:

in CGI

PATH == /sbin:/usr/sbin:/bin:/usr/bin

in shell

PATH == /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/eclipse/eclipse:/usr/local/apache-maven/apache-maven-2.2.1/bin:/usr/java/jdk1.6.0_34//bin

Any of the paths missing in CGI could be causing this?

Also, I have the following variable in shell, but not in CGI

TOMCAT_HOME   ==   /usr/share/tomcat6/

Replies are listed 'Best First'.
Re^3: CGI script connecting via terminal but not via browser
by aaron_baugher (Curate) on Sep 18, 2012 at 12:09 UTC

    The PATH environment variable only affects which perl executable is used, if there happens to be more than one on the system. For instance, if you have /usr/local/bin/perl and /usr/bin/perl, the former will be picked up first by your shell, while the latter is used by your CGI. Two different perls, even if the same version, could have two different sets of modules and configurations. You could add which perl to my test CGI to report the full pathname of perl, and the results of perl -v will also show any differences in configs and the paths that perl checks for modules. If those match, then PATH doesn't matter beyond that.

    Aaron B.
    Available for small or large Perl jobs; see my home node.

      Yes, the same perl interpreter is being used in both places. Might then be a security restriction as suggested by moritz above.