学科分类
目录
PHP基础

配置虚拟主机

在默认情况下,Apache只有C:\web\apache2.4\htdocs目录下的这一个站点,而在学习的过程中,可能需要用到多个站点。为此,我们可以利用Apache的虚拟主机功能来实现多个站点。

Apache的默认站点使用IP地址127.0.0.1或主机名localhost来访问,这两种方式访问到的站点目录都是C:\web\apache2.4\htdocs。而通过虚拟主机,可以实现用自定义的域名来访问,并且可以为不同的域名指定不同的站点目录。

由于申请一个真实的域名需要一定的费用,为了方便开发,我们可以通过更改hosts文件来实现将任意域名解析到本地。在Windows系统中以管理员身份打开命令行,然后执行如下命令,调用记事本来编辑hosts文件。

notepad C:\Windows\System32\drivers\etc\hosts

将hosts文件打开后,在该文件中配置IP地址和域名的映射关系,具体如下。

127.0.0.1 www.php.test
127.0.0.1 www.admin.test

上述配置表示当访问www.php.testwww.admin.test这两个域名时,自动解析到127.0.0.1这个IP地址上。经过上述配置之后,我们就可以在浏览器上直接输入域名来访问本机的Web服务器了。需要注意的是,这种域名解析方式只对本机有效。

通过虚拟主机可以在一台服务器上部署多个网站,虽然服务器的IP地址是相同的,但是当用户使用不同域名访问时,访问到的不是相同的网站。

接下来我们开始学习如何配置Apache虚拟主机,具体操作步骤如下。

(1)修改httpd.conf文件,启用虚拟主机配置文件。

在Apache的配置文件httpd.conf中找到如下所示的一行配置,取消“#”注释即可。

#Include conf/extra/httpd-vhosts.conf

在上述配置中,Include表示从另一个文件中加载配置,后面是配置文件的路径。

(2)在httpd-vhosts.conf配置文件中进行虚拟主机的配置。

打开conf/extra/httpd-vhosts.conf配置文件,将文件中原有的配置删除或全部使用“#”注释起来,然后重新编写如下配置。

<VirtualHost *:80>
  DocumentRoot "C:/web/apache2.4/htdocs"
  ServerName localhost
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot "C:/web/apache2.4/htdocs/www.php.test"
  ServerName www.php.test
</VirtualHost>

上述配置实现了两个虚拟主机,分别是localhost和www.php.test,并且这两个虚拟主机的站点目录被指定在不同的目录下。“*:80”表示任意IP的80端口,DocumentRoot表示文档根目录,ServerName表示服务器名。

(3)在Apache的htdocs目录中创建www.php.test目录,并在这个目录中放一个简单的网页,将文件命名为index.html,网页内容为“Welcome www.php.test”。

(4)在修改了Apache配置文件后,重启Apache服务,使配置文件生效。

(5)在浏览器中访问这两个虚拟主机,会看到两个不同的网站,如图1所示。

img

图1 访问虚拟主机

点击此处
隐藏目录