多站点配置
实现一台电脑上,可架设和运行多个站点(虚拟站点),并且可以使用不同的域名或主机名进行访问,譬如:
- http://www.x.com 用于个人站点的首页,将来自行编写相关网页及代码
- http://blog.x.com 用于将来安装wordpress,作为个人博客站点
环境准备
已安装好运行环境,如xampp
目录准备
- 创建两个目录,每一个目录代表一个虚拟站点,如:
c:\server\blog
和c:\server\www
虚拟站点: 是早期使用的一种虚拟技术,就是在一台物理机器上(或一个IP地址上)运行多个站点。而从浏览器的角度,却好象是多个运行在独立物理机器上的独立站点。 当然,在今天,连物理机器都可以虚拟了,譬如阿里云的VPS或ECS之类
配置主机名
修改C:\windows\system32\drivers\etc\HOSTS
文件,添加两条本地域名解析记录:
127.0.0.1 www.x.com
127.0.0.1 blog.x.com
生产环境或真实网络中,域名的解析是需要通过域名服务器(DNS)实现,需要购买域名等烦琐过程。为教学方便,这里使用本地的hosts文件来模拟域名,因此,仅仅只在本机上可以有效访问。 注意:某些安装杀毒软件的电脑会提示不允许更改hosts文件,请给予同意即可 参考: https://baike.baidu.com/item/localhost/2608730
配置apache
编辑d:\xampp\apache\conf\extra\http-vhosts.conf
, 这是一个配置文件,注意观察其语法格式。
下例是为apache增加两个虚拟主机的配置,配置项包括:网站根目录documentRoot、主机域名serverName、目录的权限等:
## 站点1的配置;每架设一个站点,则增加一组<VirtualHost></VirtualHost>配置
## 此处默认为80端口,如端口被占用,请相应更改
<VirtualHost *:80>
## ServerName 设置访问该网站的域名,即浏览器中输入的网址的域名部分
## DocumentRoot 设置网站的根目录,网站所包含的各文件应放置于该目录下
ServerName www.x.com
DocumentRoot "c:/server/www"
## 设置网站根目录的访问权限,如未设置,会出现access forbition的错误提示
<Directory "c:/server/www">
Options Indexes FollowSymLinks ExecCGI
Require all granted
AllowOverride None
Order deny,allow
Allow from all
</Directory>
## 定制日志文件的名称
ErrorLog "logs/www-error.log"
CustomLog "logs/www-access.log" common
</VirtualHost>
## 站点2的配置,除域名、根目录不同外,基本同上
<VirtualHost *:80>
ServerName blog.x.com
DocumentRoot "c:/server/blog"
<Directory "c:/server/blog">
Options Indexes FollowSymLinks ExecCGI
Require all granted
AllowOverride None
Order deny,allow
Allow from all
</Directory>
## 定制日志文件的名称
ErrorLog "logs/blog-error.log"
CustomLog "logs/blog-access.log" common
</VirtualHost>
检验结果
- 重启apache
- 在各站点的根目录下添加具有不同内容的 index.html文件
- 使用浏览器用域名分别访问相应站点,查看是否成功
注:更改任何配置后,均请务必重启apache
host工具
- windows下快速切换host配置文件的工具 https://github.com/oldj/SwitchHosts