0

我在我的 Mac OS X (Snow Leopard) 机器上运行 Apache。我希望能够设置多个主机名,以便我可以同时开发和测试多个站点,但我似乎无法让它工作。

这是我尝试过的:

在我的 etc/hosts 文件中,我设置了添加这些条目:

127.0.0.1    testsite1.localdev.com
127.0.0.1    testsite2.localdev.com

然后,在 apache2/httpd.conf 我添加了这些条目:

<VirtualHost *:80>
   DocumentRoot /Library/WebServer/Documents/www/development/testsite1
   ServerName testsite1.localdev.com
   <Directory "/Library/WebServer/Documents/www/development/testsite1">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot /Library/WebServer/Documents/www/development/testsite2
   ServerName testsite2.localdev.com
   <Directory "/Library/WebServer/Documents/www/development/testsite2">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

但碰巧这两个主机名都解析为 httpd.conf 文件中列出的第一个主机名——在本例中为 testsite1。如果我改变他们的位置,那么他们都会解析到 testsite2。

我还尝试更改读取 *:80 的区域并将其替换为每个站点的特定主机名,但这没有效果。

我确定每次更改后都会重新启动 apache。

谢谢你的帮助!

加里

4

1 回答 1

1
  • 在 /etc/apache2/httpd.conf 中取消注释 vhost 文件,如:

    # Virtual hosts
    Include /private/etc/apache2/extra/httpd-vhosts.conf
    
  • 在 /private/etc/apache2/extra/httpd-vhosts.conf 使用...

    #
    # Use name-based virtual hosting.
    #
    NameVirtualHost *:80
    
    <VirtualHost *:80>
        DocumentRoot "/Library/WebServer/Documents"
        ServerName localhost
    </VirtualHost>
    
    # local test site
    <VirtualHost *:80> 
      <Directory /Users/<youruser>/Sites/test>
        AllowOverride All 
      </Directory> 
      DocumentRoot "/Users/<youruser>/Sites/test"
      ServerName test.local
    </VirtualHost>
    
  • 确保您和站点文件夹的权限为 755

并确保添加到您的 /etc/hosts 文件中...

# test
127.0.0.1   test.local
于 2011-05-26T20:00:12.310 回答