在 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 文件,即使用<VirtualHost *:8080>
。但是每次我这样做时,我都会忘记告诉 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"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)