启动wamp后,通过浏览器访问localhost(或127.0.0.1)即可访问到wamp主页面。实际上,访问localhost就是访问本地wamp安装目录下的www目录下的网站,所以一般要运行自己的网页项目需要将整个项目文件夹放置在www文件夹下。并且都是通过http://localhost/项目文件夹名/…/index.html(或.php)访问到自己网页。那么如果我希望我通过访问http://mysites01.com、http://mysites02.com分别访问到我的两个网页项目mysites01、mysites02,并且这两个项目都不放置在www目录下,我就需要对wampserver进行多站点配置。
一、修改httpd-vhost.conf文件
httpd-vhost.conf文件位于:C:\wamp64\bin\apache\apache2.4.27\conf\extra\httpd-host.conf。该文件是虚拟目录配置文件,是Apache的一个扩展配置文件。打开之后复制以下内容。
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "c:/Apache2/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
- ServerAdmin :设置管理员的邮箱地址;
- DocumentRoot :文件的目录,此目录指向网站代码所放在的目录;
- ServerName :主机名;
- ErrorLog :错误日志;
- CustomLog :日常日志;
因为要配置多站点,至少配置两个,故复制粘贴两次。这里只需要用到DocumentRoot、ServerName,其他的暂时不需要,为避免干扰,将其他的删掉。
<VirtualHost *:80>
DocumentRoot "D:/Demo/mysites01"
ServerName mysites01.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/Demo/mysites02"
ServerName mysites02.com
</VirtualHost>
设置两个网站放在G:/Demo/下,域名分为mysites01.com、mysites02.com。保存修改后关闭文件。
二、加载httpd-vhost.conf文件
因为httpd-vhost.conf文件作为一个扩展文件存在,在默认情况下是不会加载的,所以我们接下来就需要告诉apache去包含这个文件。打开Apache下的httpd.conf文件(C:\wamp64\bin\apache\apache2.4.27\conf\httpd.conf),按住ctrl+f输入httpd-vhosts找到这句话:
#Include conf/extra/httpd-vhosts.conf
意思是:包含httpd-vhosts.conf这个文件,#代表注释,表示不执行,为达到我们的目的需要将#去掉执行此语句,然后保存。
三、Apache主配置文件
httpd.conf是apache的主配置文件,在改动前最好先进行备份。因为在apache中默认拒绝其他外部主机地址访问服务器下的资源(即通非localhost或127.0.0.1访问将出现403页面),除了本地的,所以我们需要把它修改成允许其他地址访问。打开httpd.conf文件找到如下位置,将Require all denied注释掉,添加上Allow from all。
<Directory />
AllowOverride none
#Require all denied
Allow from all
</Directory>
四、修改hosts文件
在C:\Windows\System32\drivers\etc下找到hosts并打开。hosts文件是负责将主机名映射到相应的IP地址。在文件最下面添加代码:
127.0.0.1 mysites01.com
127.0.0.1 mysites02.com
意思是告诉我们的浏览器若遇到mysites01.com、mysites02.com,优先从127.0.0.1这个IP下面去请求资源,127.0.0.1这个IP指向本地的localhost的。
测试:将项目文件mysites01放在D:\Demo目录下,在地址栏上输入mysites01.com,将进入第一个站点。