转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48213523
Apache中配置多主机多站点,可以通过两种方式实现:
- 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点;
- 将同一个端口映射成不同的域名,不同的域名映射到不同的站点。
我们只需要修改相应的配置文件即可。
一、准备工作
1、修改系统 hosts文件
我是在我自己的电脑上操作的,我的系统是win7,所以先修改win7系统的hosts文件,增加两个域名映射,以便后面备用。hosts文件的路径是:C:/Windows/System32/drivers/etc/hosts,在这个文件中我们加入如下两行代码:
- 127.0.0.1 www.liuyazhuang.com
- 127.0.0.1 www.lyz.com
这两行代码的意思是将www.liuyazhuang.com和www.lyz.com映射到本机的ip地址上。
2、准备两个站点
在d:/Apache目录下分别准备两个站点myweb1和myweb2,这两个站点下分别有一个index.html文件,myweb1下index.html内容是"我是第一个站点",myweb2站点下的index.html内容是"我是第二个站点"。
具体如下图所示:
![](https://img-blog.csdn.net/20150904213835773?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
好了,到此,站点准备完毕
二、具体实现
我们分别讲解两种不同的实现方案
1、修改Apache的httpd.conf文件
1)修改监听端口
在Apache的httpd.conf中,将监听端口修改为8080和8090,具体如下图所示:
![](https://img-blog.csdn.net/20150904213001420?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2)注释默认的访问路径
在httpd.conf文件中找到如下代码:
- DocumentRoot "D:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs"
将这行代码注释掉,如下图:
![](https://img-blog.csdn.net/20150904213228847?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3)打开引入httpd-vhosts.conf文件的注释
在httpd.conf文件中找到如下代码:
- # Virtual hosts
- #Include conf/extra/httpd-vhosts.conf
将#Include conf/extra/httpd-vhosts.conf这行代码的注释打开,如下图:
![](https://img-blog.csdn.net/20150904213447239?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2、修改Apache的httpd-vhosts.conf文件
我们说到的方案一和方案二,只是在配置httpd-vhosts.conf文件的时候有所不同。
方案一、
将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点
在httpd-vhosts.conf文件中添加如下代码:
- #配置我们自己的虚拟主机
- <VirtualHost www.lyz.com:8080>
- #配置访问跟目录
- DocumentRoot "d:/Apache/myweb1"
- #这里配置欢迎首页面
- DirectoryIndex index.html index.htm index.php
- <Directory />
- Options FollowSymLinks
- #不允许别人修改我们的页面
- AllowOverride None
- #设置访问权限
- Order allow,deny
- Allow from All
- </Directory>
- </VirtualHost>
-
- #配置我们自己的虚拟主机
- <VirtualHost www.lyz.com:8090>
- #配置访问跟目录
- DocumentRoot "d:/Apache/myweb2"
- #这里配置欢迎首页面
- DirectoryIndex index.html index.htm index.php
- <Directory />
- Options FollowSymLinks
- #不允许别人修改我们的页面
- AllowOverride None
- #设置访问权限
- Order allow,deny
- Allow from All
- </Directory>
- </VirtualHost>
具体如下图所示:
![](https://img-blog.csdn.net/20150904213934913?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
启动Apache在浏览器中输入:http://www.lyz.com:8080显示"我是第一个站点",输入:http://www.lyz.com:8090显示"我是第二个站点"。
方案二、
将同一个端口映射成不同的域名,不同的域名映射到不同的站点。
在httpd-vhosts.conf文件中添加如下代码:
- #配置我们自己的虚拟主机
- <VirtualHost *:8080>
- #配置访问跟目录
- DocumentRoot "d:/Apache/myweb1"
- ServerName www.lyz.com
- #这里配置欢迎首页面
- DirectoryIndex news.html index.html index.htm index.php
- <Directory />
- Options FollowSymLinks
- #不允许别人修改我们的页面
- AllowOverride None
- #设置访问权限
- Order allow,deny
- Allow from all
- </Directory>
- </VirtualHost>
-
- #配置我们自己的虚拟主机
- <VirtualHost *:8080>
- #配置访问跟目录
- DocumentRoot "d:/Apache/myweb2"
- ServerName www.liuyazhuang.com
- #这里配置欢迎首页面
- DirectoryIndex news.html index.html index.htm index.php
- <Directory />
- Options FollowSymLinks
- #不允许别人修改我们的页面
- AllowOverride None
- #设置访问权限
- Order allow,deny
- Allow from all
- </Directory>
- </VirtualHost>
具体如下图所示:
![](https://img-blog.csdn.net/20150904214339339?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
启动Apache在浏览器中输入:http://www.lyz.com:8080显示"我是第一个站点",输入:http://www.liuyazhuang.com:8080显示"我是第二个站点"。