Apache 不显示且不遵循 SymLinks

Apache 不显示且不遵循 SymLinks

在 Linux Fedora 15 上,Apache 不遵循符号链接,并且它们没有显示在目录索引中...您能帮我找出原因吗?

只需提到在 httpd.conf 中我确实有:

<Directory />
    Options FollowSymLinks
</Directory>

此外,httpd.conf 中定义的用户和组是保存 Web 应用程序的适当目录的所有者......

你能告诉我我做错了什么吗?提前谢谢您!!!

更新:是否因为目标位于另一个硬盘上而出现问题?

更新2:它遵循符号链接,但由于某种原因,此链接未被遵循。它指向其他硬盘上的目录。

更新 3:第一个方向之后“没有什么特别的”,即:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

答案1

确保 Apache 对链接指向的目录具有读取权限。仅授予链接本身的读取权限是不够的。

答案2

我知道我问这个问题已经很晚了,但也许我可以帮助别人。我遇到了同样的问题,最后我解决了它:你必须更改符号链接目标的所有父目录的权限。在我的情况下 - 例如 - 链接指向 /run/media/username/device/subdirectory/target(我使用 arch linux)。所以我需要更改“用户名”和“子目录”访问权限(其他的应该默认没问题):

setfacl -m "u:http:r-x" /run/media/username/device/subdirectory
setfacl -m "u:http:r-x" /run/media/username

对于后者,您需要 root 权限(当然,http 是 httpd.conf 中定义的 httpd 用户)。

答案3

如果只有这个链接有问题,那么我认为问题出在链接上,而不是 Apache 配置上。你确定它没有损坏或目标驱动器未正确安装吗?对于单独驱动器上的文件,ls -l应该显示,例如:

-rw-r--r-- 1 user group size date time link_name -> /drive/mount/point/path/to/file/file_name

如果没有,那么您应该使用以下方法重新建立链接:

rm link_name
ln -s /drive/mount/point/path/to/file/file_name link_name

如果链接指向正确的位置,则可能是目标驱动器未安装。重新安装并重试。祝你好运!

相关内容