Apache:不是chmod 755足以在Mac OS 10.5的Apache httpd上设置符号链接或别名?

在我的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)以查看您的用户(某人)的权限。
另外是“网站”目录正确可用本地主机/〜某人?