I am curious about something. You earlier said:
> > >
> > > Since I can run a standard shellscript, located in the cgi-bin
> directory, is
> > > there a security situation I missed re perl scripts specifically?
does this mean that you can access the apache server via a browser and
cause a shell script located in the directory to be executed? Something
like http://myhost.com/cgi-bin/shellscript ? But that
http://myhost.com/cgi-bin/perlscript doesn't?
If your perl is using libraries that aren't in the standard places, you
might need to use the Apache SetEnv directive, something like SetEnv
PERL5LIB /home/myhome/myperlstuff. Or alternatively PassEnv PERL5LIB
to ensure that the existing PERL5LIB gets passed along.
Also, recommend that you add the "-w" option , e.g. #!/usr/bin/perl -w
This will cause perl warnings and errors to be printed to STDERR (which
will be the Apache error_log for cgi operations). It may give you some
more detail on problems specific to perl.
Hmm, wait, perhaps this is it... (although I would doubt it, since the
error message doesn't mention suexec...)
The Mandrake v6.1 Apache installation comes with suexec enabled.
Perhaps yours does too. If so, it places a number of restrictions on
CGI scripts that may be tripping you up. Among the possibilities:
if you are using Perl libraries that are found via the PERL5LIB
environmental variable, then they probably aren't found because a lot of
the environment doesn't get passed. Even the PATH variable gets set to
some minimalist value.
the directory cannot be writeable, etc.
It would be easy enough to see if this is related to the problem.
Temporarily rename /usr/sbin/suexec to something else, like
/usr/sbin/suexec.not
anyway, the suexec documentation is at
/home/httpd/html/manual/suexec.html