Question

mod_perl/apache doesn't seem able to follow symlinks.

In httpd.conf I have:

Options FollowSymLinks
<VirtualHost *>
        ServerName cas.devserver.com
        ServerAlias cas.devserver.com
        ServerAdmin webmaster@devserver.com
        DocumentRoot /var/www/htdocs/abc/def
        PerlSwitches -I/var/www/cgi-bin
        PerlSendHeader On
        <Location />
                Options FollowSymLinks
                PerlSendHeader On
                PerlHandler Test1::Test
                SetHandler perl-script
                Order deny,allow
                Allow from all
        </Location>
</VirtualHost>

If /var/www/cgi-bin/Test1 is a directory containing Test.pm, then it works. If it is a symlink to the directory that contains Test.pm (/var/www/cgi-bin/test1/) then it fails:

[error] [client xxx.xxx.xxx.xxx] failed to resolve handler `Test1::Test':
      Can't locate Test1/Test.pm in @INC
      (@INC contains: /var/www/cgi-bin/ <snip> /usr/lib/perl5/5.8.8 . /etc/httpd)
      at (eval 9) line 3.\n

I've checked permissions and they seem OK.

Thanks for any help.

Was it helpful?

Solution

Simple obvious question,

Have you tried running your cgi script from the command line with the symlink in place?

Shouldn't you also add to the container?

Options +ExecCGI

HTH

cheers,

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top