试图用几个不同的DocumentRoots拒绝Apache虚拟主机权限。 接下来我应该尝试什么?

我有一个在Mac OS X Leopard下运行的Apache 2的自编译版本。 这是/ usr / local / apache2的默认安装,并且工作正常。

今天,我想添加一个虚拟主机,所以我可以访问一个域名为http://binarytales.local的特定文件夹

所以我将127.0.0.1 binarytales.local添加到了/etc/hosts ,使得dnscaching变得更加简单,并且可以通过该地址访问我的服务器。

我希望能够通过我新创build的本地域名访问我工作的Web服务器中的子文件夹。 所以我设置了下面的vhosts文件

 NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /usr/local/apache2/htdocs ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot /usr/local/apache2/htdocs/ProjectX ServerName binarytales.local </VirtualHost> 

浏览localhost工作正常,我得到的文件,我总是用来获得。 浏览到binarytales.local给我一个内部服务器错误。

我做了一些投资,发现我已经将htdocs设置为/Users/me/Sites的符号链接,所以我尝试将我的虚拟主机设置为

 <VirtualHost *:80> DocumentRoot /Users/me/Sites/ProjectX ServerName binarytales.local </VirtualHost> 

这也没有工作。 现在我正在Forbidden You don't have permission to access / on this server.

所以我尝试了DocumentRoot /Users/me/Sites并得到了相同的禁止消息。

最后我试了一下

DocumentRoot / usr / local / apache2 / htdocs2 ServerName binarytales.local

其中/usr/local/apache2/htdocs2Users/me/Sites/ProjectX的符号链接。 我也试过Users/me/Sites 。 我得到相同的“禁止”的错误。

我已经检查了用户和组的设置,一切都是root / wheel与我/车轮的`Users / me / Sites /'中的东西分开。 所有的董事都是chmod -x给大家。

我完全被困住了,不知道下一步该怎么做!


我的问题标题是废话。 请改变它/build议更好的东西。

好的,所以我在5分钟之后把这个固定好了

 <Directory "/usr/local/apache2/htdocs/Binarytales"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> 

在我的虚拟主机声明中。 所以最后这样读:

NameVirtualHost *:80

 <VirtualHost *:80> DocumentRoot /usr/local/apache2/htdocs ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot /usr/local/apache2/htdocs/Binarytales ServerName binarytales.local <Directory "/usr/local/apache2/htdocs/Binarytales"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 

我认为这里的魔法果汁是Options ... FollowSymLinks但任何人都有一个很好的解释,为什么这个作品,请让我知道,或者如果有一个更好的/替代解决scheme。

我会先尝试bind安装。 假设它可以在Mac OS X上运行,就像在Linux上一样:

 mount --bind /path/one /path/two