我有一个在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/htdocs2是Users/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