请帮我解决这个问题,我甚至没有办法用谷歌搜索。不知道为什么这个 Apache 配置没有按我预期的方式工作。
<VirtualHost *:80>
DocumentRoot "/var/www/x/frontend/www"
ServerName test.dev
Alias /uploads "/var/www/x/common/uploads"
<Directory "/var/www/x/frontend/www">
AllowOverride All
</Directory>
<Directory "/var/www/x/common/uploads">
Options +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
现在,当访问http://test.dev/uploads/something,我得到 403 Forbidden。在 apache 错误日志中:
“AH00037:不允许符号链接或链接目标无法访问:/var/www/x/common/uploads/something”
/var/www/x/common/uploads/something
是 的符号链接/home/myusername/something
,它是使用 sshfs 挂载的远程文件夹。
/home/myusername/something
具有 755 权限,其中的所有内容均具有 777 权限。
答案1
我有两个猜测:
/home/myusername 具有 750 权限,因此 Apache 无法访问子目录
其他用户仍然无法访问已挂载的目录(FUSE 默认这样做),请尝试
sshfs -o allow_other
修复该问题。
无论如何,您需要确定是 Apache 配置出了问题还是 Apache 服务器无法访问文件。尝试执行此操作sudo -u www-data ls /var/www/x/common/uploads/something
(将 更改www-data
为系统上运行 Apache 的用户)。如果出现错误,则需要在某处修复权限,否则配置出了问题。