背景:在开发的时候,我们的项目部署在Apache服务器上,不同的项目存放在不同的文件夹中。然后在浏览器地址栏输入路径进行访问。终归觉得有点麻烦,所以想到在Apache上配置虚拟主机,实现一个服务器提供多站点服务。
ps: 本文使用 appserv 搭建的环境,内置Apache。
- 系统环境:window10 x64
- 文本编辑器: notepad ++
Apache 配置虚拟主机
Apache 配置虚拟机主要有三种方式:
官方手册
- 基于域名
- 基于IP
- 基于端口
本文主要讲解基于域名配置虚拟主机。
基于域名配置Apache步骤
step1. 配置本机hosts文件。
文件路径:C:\Windows\System32\drivers\etc
使用文本编辑器打开,在最后一行加入你想要的域名(模拟外网):
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
# 自己添加的
127.0.0.1 yixuan.com
127.0.0.1 zq.yixuan.com
修改好了自己保存。如果不能保存,请以管理员身份运行文本编辑器,进行编辑。
step2. 修改Apache httpd.conf配置文件
httpd.conf文件在你apache的安装路径下面,我安装在D:盘,所以路径如下:
文件路径:D:\AppServ\Apache24\conf
取消一下行前的注释:
Include conf/extra/httpd-vhosts.conf
LoadModule vhost_alias_module modules/mod_vhost_alias.so
step3. 修改Apache httpd-vhost.conf配置文件
httpd-vhost.conf 在Apache安装目录的conf/extra/下。
按照配置文件说明添加一台虚拟机:
# 样例
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
# DocumentRoot "${SRVROOT}/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>
# 自己添加的虚拟主机
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "D:/AppServ/www/site-hub" # 项目路径
ServerName zq.yixuan.com # 域名,和hosts配置里面写的相对应
ErrorLog "logs/zq.yixuan.com.log" # 错误日志
CustomLog "logs/zq.yixuan.com.log" common
</VirtualHost>
保存,重启apache。
打开浏览器,地址栏输入:zq.yixuan.com
, 浏览器正常响应。
响应.png