以正确的方式在 Apache 中创建多个虚拟主机(macosx)

以正确的方式在 Apache 中创建多个虚拟主机(macosx)

我在尝试在 Apache 中定义多个虚拟主机时遇到了一个奇怪的问题。这是我的 httpd.conf 文件代码:

<VirtualHost *:8888>
    ServerName site1.local
    DocumentRoot /Applications/MAMP/htdocs/site1/public

    <Directory /Applications/MAMP/htdocs/site1/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:8888>
    ServerName site2.local
    DocumentRoot /Applications/MAMP/htdocs/site2/public

    <Directory /Applications/MAMP/htdocs/site2/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

当我尝试在浏览器中访问“site2.local”时,我被重定向到“site1.local”。这会发生在我插入到 httpd.conf 文件下面的所有 VirtualHost 定义上。当我想访问“site2.local”或任何其他内容时,我需要将其 VirtualHost 定义放在顶部(作为第一个)。因此,我假设 Apache 仅正确执行第一个 VirtualHost。

另外,还有一个问题:如果我尝试访问 htdocs 文件夹中未在 VirtualHost 中定义的任何项目文件,我将收到一条消息“禁止访问,您无权访问此服务器上的 /project/。” 如果我想访问这些项目中的任何一个,我需要删除 httpd.conf 文件中的所有 VirtualHost 定义。

我做错了什么?

就我而言,这些(在 VirtualHost 中定义)是使用 Zend Framework 的 PHP 项目。我使用的是 MacOSX。

谢谢

答案1

你失踪了

NameVirtualHost *:8888

<VirtualHost _default_:8888>
DocumentRoot /www/default
</VirtualHost> 

有关 apache 默认虚拟主机的更多信息,您可以阅读此在线文档

http://httpd.apache.org/docs/2.2/vhosts/examples.html

相关内容