在 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
如果链接指向正确的位置,则可能是目标驱动器未安装。重新安装并重试。祝你好运!