在我的Mac OS 10.5机器上,我想设置~/Documents/foo/html
类的~/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禁止。 在我得到的error_log中:
[error] [client ::1] (13)Permission denied: access to /foo denied
有问题的子文件夹具有chmod 755访问权限。 我试过指定喜欢像http://localhost/foo/test.php ,但也没有工作。 接下来,我尝试了符号链接路线。
进入/Library/WebServer/Documents
并build立~/Documents/foo/html
的符号链接。 文档根目录
Options Indexes FollowSymLinks MultiViews
这仍然让我403禁止:
Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo
我还需要什么来设置?
解答 :
$ chmod 755 ~/Documents
通常,要共享的文件夹及其所有的祖先文件夹需要由www
服务用户查看。
我敢打赌,你要访问的目录之上的某个目录没有权限允许Apache遍历它。 成为Apache正在运行的用户( sudo -i -u apache
或其他),然后尝试更改到感兴趣的目录中。 如果你不能(如预期的那样)尝试进入它上面的目录,一个接一个,直到一个让你进入。这个子目录就是那个需要设置o+x
。 起泡,冲洗,根据需要重复。
使用+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>
检查以确保文件库未启用。 我有同样的问题。 我尝试了所有我能find的东西。 没有工作。 但经过一个小时的努力,我记得我已经启用了文件库。
禁用它解决了这个问题。
检查符号链接的所有权。 由于您使用的是Mac OS X,因此可以更改符号链接的所有者。 In /Library/WebServer/Documents
do ls -l
如果你的符号链接~/Documents/foo/html
被称为foo
并且具有类似的权限
lrwxr-xr-- 1 root wheel 27 2 Nov 17:00 foo -> /Users/username/Documents/foo/html
然后默认在OS X上Apache运行的是_www user和_www组,所以在上面提到的情况下,它将不能遍历到~/Documents/foo/html
的符号链接
在你的系统terminal上运行man 8 chown
,或者在线查看man chown
您会看到使用-h
选项将会更改符号链接本身的所有权,而不是它指向的文件(它是源文件)。 那么你可以做一些类似的事情
sudo chown -h :_www foo
这将改变simlink
lrwxr-xr-- 1 root _www 27 2 Nov 17:02 foo -> /Users/username/Documents/foo/html
Apache _www组将能够遍历链接。
检查您的/ Users目录(ls -l / Users)以查看您的用户(某人)的权限。
另外是“网站”目录正确可用本地主机/〜某人?