首页 > 代码库 > Apache多站点的配置
Apache多站点的配置
Apache中配置多主机多站点,可以通过两种方式实现:
- 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点;
- 将同一个端口映射成不同的域名,不同的域名映射到不同的站点。
我们只需要修改相应的配置文件即可。
1、修改系统 hosts文件
hosts文件的路径是:C:/Windows/System32/drivers/etc/hosts,在这个文件中我们加入如下两行代码:
- 127.0.0.1 www.test.com
- 127.0.0.1 www.china.com
- 这两行代码的意思是将www.test.com和www.china.com映射到本机的ip地址上。
2、具体实现
两种不同的实现方案
1、修改Apache的httpd.conf文件
1)注释默认的访问路径
在httpd.conf文件中找到如下代码:
#Include conf/extra/httpd-vhosts.conf
去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置。
2、修改Apache的httpd-vhosts.conf文件
我们说到的方案一和方案二,只是在配置httpd-vhosts.conf文件的时候有所不同。
方案一
将同一个端口映射成不同的域名,不同的域名映射到不同的站点。
在httpd-vhosts.conf文件中添加如下代码:
#第一个站点的配置
<VirtualHost*:80>
ServerName www.test.com
DocumentRoot "F:/http/www/"
DirectoryIndex news.html index.htmlindex.htm index.php
<Directory "F:/http/www/">
#允许或禁止显示该虚拟目录的目录结构,-Indexes(去掉Indexes)表示禁止
OptionsIndexes FollowSymLinks
#先检查禁止设定,没有禁止的全部允许
Order Deny,Allow
#允许所有人访问
Allow from all
#允许设置分布式目录权限(.htaccess)
AllowOverride all
</Directory>
</VirtualHost>
#第二个站点的配置
<VirtualHost*:80>
ServerName www.china.com
DocumentRoot "F:/http/www/new400"
<Directory"F:/http/www/new400">
Options IndexesFollowSymLinks
Order Deny,Allow
Allow from all
#允许设置分布式目录权限(.htaccess)
AllowOverride all
</Directory>
</VirtualHost>
#局域网通过内部IP地址来访问我这台电脑里面的本地php网站
<VirtualHost172.168.19.172>
ServerName 172.168.19.172
DocumentRoot"F:/http/www/china400"
</VirtualHost>
重启Apache,就可以通过设置的域名访问了。
方案二、
将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点
第一步:
在httpd.conf文件中找到如下代码:
Listen 80
增加:Listen 8080
在httpd-vhosts.conf文件中添加如下代码:
#第三个站点的配置
<VirtualHost*:80>
ServerName www.php23.com
DocumentRoot"F:/http/www/china400"
<Directory"F:/http/www/china400">
Options IndexesFollowSymLinks
Order Deny,Allow
Allow from all
AllowOverride all
</Directory>
</VirtualHost>
#第四个站点的配置
<VirtualHost*:8080>
ServerName www.php23.com
DocumentRoot "F:/http/www/06news"
<Directory"F:/http/www/06news">
Options IndexesFollowSymLinks
Order Deny,Allow
Allow from all
AllowOverride all
</Directory>
</VirtualHost>
重启Apache,就可以通过设置的域名访问了。
Apache多站点的配置