WAMP 配置虚拟主机

win 环境下进行 web 本地开发,配置环境太繁杂,很多人会选择如 WAMP、phpStudy 之类的集成环境,这里记录一下在 WAMP 下配置虚拟主机的过程。

为什么要配置虚拟主机呢?其实通过 127.0.0.1 拼上路径照样可以访问,比如:
http://127.0.0.1/new_project/index.php
但是如果想要通过 http://a.com/index.php 来访问,那就需要配置虚拟主机了。

一、配置 hosts 文件

编辑 C:\Windows\System32\drivers\etc\hosts ,一般已经会有一行 127.0.0.1 localhost ,开启 WAMP 后能通过 localhost 访问,就是靠它。我们依样画葫芦,像这样添加即可:

1
2
127.0.0.1 localhost
127.0.0.1 a.com

这样已经能用 a.com 代替 127.0.0.1 来访问项目了:http://a.com/new_project/index.php
接下来让 a.com 直接指向 new_project 目录。

PS:后面以 WAMP 开头的路径,则表示 WAMP 的安装目录,比如我的是 D:\WAMP

二、启用 httpd vhosts 配置

编辑 WAMP/bin/apache/apache2.4.23/conf/httpd.conf (其中 apache2.4.23 应该换成你启用的 apache 版本目录)。
找到 # Include conf/extra/httpd-vhosts.conf ,去掉前面的注释。

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

三、在 httpd-vhosts.conf 中添加配置

编辑 WAMP\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf
一般来说默认已经有一个名为 localhost 的虚拟主机,我们只要将这一块代码复制一份在下面,然后将 ServerNameDocumentRoot 为自己想要的就可以了。
这里是 ServerName 就是第一步里面添加的域名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!-- 原有的 localhost 虚拟主机: -->
<VirtualHost *:80>
ServerName localhost
DocumentRoot D:/WAMP/www
<Directory "D:/WAMP/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
<!-- 依样画葫芦: -->
<VirtualHost *:80>
ServerName app.com
DocumentRoot D:/WAMP/www/new_project
<Directory "D:/WAMP/www/new_project/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>

四、配置完成

在浏览器中输入配置的 ServerName ,就可以通过 http://a.com/index.php 访问了。

原理大概就是:
修改 hosts 文件,让 ServerName 指向本地,这就代替了 DNS 解析的作用,所以如果你把 ServerName 配置为 www.google.com 的话,就无法正确访问 Google 了,当然了本来就不行。
然后 httpd.conf 中启用 httpd-vhosts.conf 是让 apache 启用虚拟主机的配置。
最后 httpd-vhosts.conf 中将 ServerName 指向 DocumentRoot 的目录。
所以就相当于 ServerName 指向 DocumentRoot 了