在本地计算机上提供多个主机/域名

时间:2014-01-08 12:49:59

标签: windows-7 vhosts

我在Windows机器上有一个本地PHP服务器,而我遇到的麻烦是在主根127.0.0.1/localhost中我希望有几个我可以调用的文件夹/站点。

目前我可以做localhost / siteA或localhost / siteB没有问题,但我想做的是分配这些位置测试域名:

EG:localhost / siteA是sitea.dev,localhost / siteB是siteb.dev

没问题,因为我在主机文件和vhost配置文件上设置了一个。

mysites.dev链接到root / localhost。所以我可以像上面那样使用它

mysites.dev/siteA和mysites.dev/siteB

但是,如上所述,我想给每个站点提供自己的vhost名称。所以我添加了以下内容:

主机文件

127.0.0.1       mysites.dev
127.0.0.1       sitea.dev

vhost文件

<VirtualHost *:80>
    DocumentRoot "C:\Websites\"
    ServerName mysites.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:\Websites\sitea\"
    ServerName sitea.dev
</VirtualHost>

麻烦的是,无论我调用它们的所有人似乎都只是加载第一个,或者至少它看起来像那样,但是如果没有vhost细节它们仍然会转到root,所以看起来主机文件正在指向它们到127.0.0.1并且它的vhost文件似乎被忽略了。

那么我为了连接个别本地网站而错过了什么?

已解决:看到我的答案会在几天内将其标记为正确答案。

2 个答案:

答案 0 :(得分:0)

你的vhosts都试图抓住端口80上的任何内容:<VirtualHost *:80>

您需要指定vhost名称以指向特定文件夹:

<VirtualHost sitea.dev:80>
    DocumentRoot "C:\Websites\sitea\"
    ServerName sitea.dev
</VirtualHost>

<VirtualHost siteb.dev:80>
    DocumentRoot "C:\Websites\siteb\"
    ServerName sitea.dev
</VirtualHost>

您可以在Apache文档中找到更多相关信息:http://httpd.apache.org/docs/2.2/vhosts/examples.html

答案 1 :(得分:0)

我确实感到愚蠢。经过长时间的观察,我注意到在配置文件中它没有调用vhost文件,因为我将它们放在主httpd.conf中并且它有效。

所以我必须在httpd.conf文件中取消注释以下内容:

   # Virtual hosts
   Include conf/extra/httpd-vhosts.conf