为什么我不能用符号链接替换我的 Apache2 /www 文件夹?

为什么我不能用符号链接替换我的 Apache2 /www 文件夹?

我在 Ubuntu 13.10 上安装了 Apache 2.4.6,并将一些 html 文件放在/var/www/默认基本文件夹中。然后我需要将这些 html 文件共享到同步的 Dropbox 文件夹,因此我将文件www夹移到我的 Dropbox 文件夹中,并将其替换为同名的符号链接。请注意,Dropbox 中的 www 文件夹具有读取权限。现在,当我刷新我的网站时,Chrome 会读取

您无权访问此服务器上的 /

为什么无法将www文件夹移动到我同步的 Dropbox 文件夹(在用符号链接替换原始文件夹后)?我不认为 Apache 会注意到 www 文件夹的链接和实际文件夹之间的差异www。我该如何让 Apache 遵循 www 符号链接并正确显示?这是 Dropbox 问题还是 Apache 问题?

另外,我的/etc/apache2/apache2.conf文件原来是这么说的:

<Directory /> 
Option FollowSymLinks 
AllowOverride None 
Require all denied 
</Directory>

并将其更改为...

<Directory /> 
Option +FollowSymLinks 
AllowOverride None 
Require all denied 
</Directory>

(添加加号)并没有什么区别。

哦,apache2 -k restart 抛出了以下错误:

“配置变量 ${APACHE_LOG_DIR} 未定义”

和:

“参数文件中的 Mutex 目录无效:${APACHE_LOCK_DIR}”

重启和停止/启动均无效。此外,将文件夹和子文件夹的权限更改为 Other:read_only 也没有任何区别(尽管 Dropbox 文件夹最初没有授予此类权限)

还有其他想法吗?

答案1

您必须确保路径上的所有目录都已/path/to/your/folder/www设置x位,无论是针对others还是针对www-data用户。

答案2

默认情况下,Apache 不会跟踪符号链接。要启用此行为,您需要将以下内容添加到<Directory>vhost 配置部分:

Options +FollowSymLinks

尽管如此,我强烈建议不要使用 Dropbox。还有很多其他更安全的选项可以轻松完成文件部署。

另一件需要验证的事情是,apache 用户是否有权读取 Web 根目录中的文件。如果您的 Dropbox 文件夹位于您的主目录中,则 apache 用户最有可能才不是有读取权限。(另一个不使用 Dropbox 的原因)

相关内容