在 Windows 上设置 Apache 虚拟主机

Posted

技术标签:

【中文标题】在 Windows 上设置 Apache 虚拟主机【英文标题】:Set up Apache virtualhost on Windows 【发布时间】:2011-02-09 03:11:30 【问题描述】:

如何在 Windows 上为多个域名设置虚拟主机?

我会将它用于我自己的测试项目。我需要设置三个项目,目前我正在将 xampplite 用于便携式 Apache。

    www.foo-bar.com --> 直接到 c:\xampplite\htdocs\foo-bar\ www.abcdef.com --> 指向 c:\xampplite\htdocs\abcdef\ www.qwerty.com --> 直接到 c:\xampplite\htdocs\qwerty\web\

我还需要访问另一个项目,但它就像打字一样 http://localhost/my-project/

如何为此编写虚拟主机配置?

【问题讨论】:

【参考方案1】:

您需要执行几个步骤才能完成这项工作。

    更新hosts file。 在 Windows XP 上,您可以在c:\WINDOWS\system32\drivers\etc\ 下找到它。您应该已经看到了下面的第一行。它负责您提到的其他项目。添加其他请求以向上述虚拟主机发出任何请求,然后路由回您自己的计算机。

     127.0.0.1       localhost
     127.0.0.1       foo-bar.com
     127.0.0.1       abcdef.com
     127.0.0.1       qwerty.com
    

    更新 Apache 配置中的 vhosts 文件。 在您的 XAMPP 文件夹下,将以下内容添加到 apache\conf\extra\httpd-vhosts.conf 并根据需要更改端口(即,如果您使用 8080 而不是端口 80)。

     <VirtualHost *:80>
         DocumentRoot C:/xampplite/htdocs/foo-bar/
         ServerName www.foo-bar.com
     </VirtualHost>
     <VirtualHost *:80>
         DocumentRoot C:/xampplite/htdocs/abcdef/
         ServerName www.abcdef.com
     </VirtualHost>
     <VirtualHost *:80>
         DocumentRoot C:/xampplite/htdocs/qwerty/web/
         ServerName www.qwerty.com
     </VirtualHost>
    

    进行快速配置检查。打开您的文件XAMPP-folder\apache\conf\httpd.conf,并确保以下部分未被前面的# 字符注释掉:

     Include conf/extra/httpd-vhosts.conf
    

    重启 XAMPP

...你现在应该已经准备好了。如果您只是将它放在C:/xampplite/htdocs/my-project/ 下,您的其他项目应该可以通过您提到的 URI 访问。

【讨论】:

我一直在使用不同的端口并且没有任何运气让它在 Windows 上正常工作。你对此有什么建议吗?以 8080 端口为例。 您可能已经想到的一件事是您需要更改 vhosts 文件,即使用 &lt;VirtualHost *:8080&gt;。但是每次我这样做时,我都会忘记告诉 Apache 监听那个端口。在httpd.conf 文件中查找“Listen”,并将其设置为Listen 8080。另外,如果您仍在使用 Apache 2.2,您可能还需要在 httpd-vhosts.conf 中的 vhost 设置顶部添加 NameVirtualHost *:8080 谢谢。您提到了对 Include .../httpd-vhosts.conf 的难以捉摸的检查,从而救了我!我以为它会默认包含在内,但事实并非如此,而且我使用的教程也没有提到它。现在就像一个魅力。 #3 为我节省了数小时的调试时间。谢谢!【参考方案2】:

要让C:/xampp/htdocs/my-project/ 正常工作,我必须将以下(默认?)VirtualHost 添加到apache\conf\extra\httpd-vhosts.conf(在MicE's tutorial 的第2 步中)。

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

【讨论】:

也许你还必须确保你允许读取目录 ``` DocumentRoot "C:/my-project" AllowOverride All 需要所有授予 ```【参考方案3】:
127.0.0.5  abcd.com

<  VirtualHost 127.0.0.5 >

    ServerName abcd.com

    DocumentRoot "C:\xampp\htdocs\laravel\public" 

    <Directory "C:\xampp\htdocs\laravel\public">

        DirectoryIndex index.php

        AllowOverride All

        Order allow, deny

        Allow from all

    </Directory>

< / VirtualHost > 

【讨论】:

解释一下。

以上是关于在 Windows 上设置 Apache 虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

在 Apache 上设置虚拟主机(XAMPP、Windows 10)

Windows localhost 和虚拟主机上的 Apache

Apache 创建虚拟主机目录和设置默认访问页面

设置本地虚拟域名windows+apache

83.LAMP设置默认主机

Windows虚拟目录配置帮助上的apache