在我的 Mac OS 10.5 机器上,我想设置一个子~/Documents
文件~/Documents/foo/html
夹http://localhost/foo。
我想到做的第一件事就是使用 Alias,如下所示:
Alias /foo /Users/someone/Documents/foo/html
<Directory "/Users/someone/Documents/foo/html">
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from all
</Directory>
这导致我出现 403 Forbidden。在 error_log 中我收到:
[error] [client ::1] (13)Permission denied: access to /foo denied
有问题的子文件夹具有 chmod 755 访问权限。我尝试过指定类似http://localhost/foo/test.php,但这也不起作用。接下来,我尝试了符号链接路由。
进入/Library/WebServer/Documents
并创建了指向 的符号链接~/Documents/foo/html
。文档根目录有
Options Indexes FollowSymLinks MultiViews
这仍然导致我出现 403 Forbidden:
Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo
我还需要做什么来设置它?
解决方案:
$ chmod 755 ~/Documents
一般而言,要共享的文件夹以及其所有祖先文件夹都需要对www
服务用户可见。
答案1
我敢打赌,您要访问的目录上方的某个目录没有权限让 Apache 遍历它。成为 Apache 正在运行的用户(sudo -i -u apache
或其他用户),然后尝试切换到感兴趣的目录并ls
进入。如果您不能(如预期的那样),则尝试逐个进入其上方的目录,直到有一个目录允许您进入。该目录的子目录是需要设置的目录o+x
。根据需要涂抹、冲洗、重复。
答案2
使用+FollowSymlinks
Alias /foo /Users/someone/Documents/foo/html
<Directory "/Users/someone/Documents/foo/html">
Options +Indexes +FollowSymLinks +MultiViews
Order allow,deny
Allow from all
</Directory>
答案3
检查以确保文件保险库未启用。我遇到了同样的问题。我尝试了我能找到的所有其他方法。但都不起作用。但经过一个小时的尝试后,我想起我启用了文件保险库。
禁用它可以解决问题。
答案4
检查您的 /Users 目录 (ls -l /Users) 以查看您的用户 (someone) 的权限。
此外,localhost/~someone 上是否正确提供了“Sites”目录?