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

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

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

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

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

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

【问题讨论】:

    标签: windows apache webserver virtualhost


    【解决方案1】:

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

    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
      
    2. 更新 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>
      
    3. 进行快速配置检查。打开您的文件{XAMPP-folder}\apache\conf\httpd.conf,并确保以下部分未被前面的# 字符注释掉:

       Include conf/extra/httpd-vhosts.conf
      
    4. 重启 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 > 
    

    【讨论】:

    • 解释一下。
    猜你喜欢
    • 2017-10-12
    • 2017-08-12
    • 1970-01-01
    • 2015-03-01
    • 2017-05-30
    • 2013-07-31
    • 2013-10-21
    • 2010-10-23
    相关资源
    最近更新 更多