Apache 2 不允许符号链接或链接目标不可访问

Apache 2 不允许符号链接或链接目标不可访问

我的 apache 服务器以用户 foo 身份运行。

我在 /home/foo/app1 /home/foo/app2 中有一些 Rails 应用程序。每个应用程序都有一个 vhost

<VirtualHost *:80>
    ServerName app1.foobar.com
    ServerAlias www.app1.foobar.com
    DocumentRoot /var/www/html/app1/current/public
    RailsEnv production
    <Directory /var/www/html/app1/current/public>
    AllowOverride all
     Options -MultiViews
    </Directory>
</VirtualHost>

我在 /var/www/html/app1 中有一个符号链接:

current -> /home/foo/app1/tmp_20102611

所有文件权限都设置正确(用户 foo 组 foo),我可以从 shell 浏览文件系统。

SELINUX 已禁用

发行版是 CentOs 5.5

上面的符号链接我得到一个 403 和一个错误日志中的错误条目

不允许符号链接或链接目标无法访问:/var/www/html/app1/current

当我将我的应用程序符号链接到 /var/www/html 子目录而不是 /home/foo 子目录中时,它可以工作。

我如何才能避免这个错误,仍然将我的应用程序放在我的 /home/foo 目录中?

答案1

我遇到了非常类似的问题。像您一样,我无法跟踪主目录下的符号链接,尽管我启用了 FollowSymlinks,并且我可以使用 http 用户进行 ls 操作,但将符号链接放在 /srv/http 下却没问题...我通过将主目录 chmod 为可执行文件来修复此问题:

chmod +x /home/mgalgs

这对我很有帮助!也许可以试试

chmod +x /home/foo/app1

答案2

您可以尝试设置选项

Options +FollowSymLinks 

在您的配置中。请参阅文档这里更多细节。

相关内容