aidan
aidan

Reputation: 9576

Apache2 with mod_perl, it doesn't follow symlinks; How can I fix this?

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 [email protected]
        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.

Upvotes: 2

Views: 1899

Answers (1)

Rob Wells
Rob Wells

Reputation: 37123

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,

Upvotes: 1

Related Questions