Apache配置虚拟主机的三种方式
一、基于IP
二、基于主机名
三、基于端口
首先在Apache下的htdocs目录下,新建两个目录,test1和test2
每个目录下新建一个测试页面index.php,只要不一样就行,示例内容如下
test1:<html> <body> <?php echo "You are in test1"; ?> </body></html>test2:<html> <body> <?php echo "You are in test2"; ?> </body></html>
本地模拟外网域名,在hosts文件配置两个测试域名
127.0.0.1 www.test1.com
127.0.0.1 www.test2.com
一、基于IP
基于IP是,一台服务器有多个网卡,每个IP绑定一个站点的方式
配置示例如下
首先,修改Apache24\conf\httpd.conf文件,找到VirtualHost example,在后面引入httpd-vhosts.conf文件:Include conf/extra/httpd-vhosts.conf
这个句话,高版本的apache里面已经写有了,只需吧Include前面的#号去掉就OK了
然后Apache24\conf\extra\httpd-vhosts.conf文件内容,我这里把其他内容清空了,只留下了如下配置信息。
<VirtualHost 172.20.30.40:80> DocumentRoot "D:\website\Apache24\htdocs\test1" ServerName www.test1.com ErrorLog "logs/test1-error.log" CustomLog "logs/test1-access.log" common </VirtualHost> <VirtualHost 172.20.30.50:80> DocumentRoot "D:\website\Apache24\htdocs\test2" ServerName www.test2.com ErrorLog "logs/test2-error.log" CustomLog "logs/test2-access.log" common </VirtualHost>
二、基于主机名
基于主机名也就是基于域名方式访问,每个 IP 多个站点
配置示例如下
<VirtualHost *:80> DocumentRoot "D:\website\Apache24\htdocs\test1" ServerName www.test1.com ServerAlias test1.com ErrorLog "logs/test1-error.log" CustomLog "logs/test1-access.log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "D:\website\Apache24\htdocs\test2" ServerAdmin rapido@qq.com ServerName www.test2.com ServerAlias test2.com ErrorLog "logs/test2-error.log" CustomLog "logs/test2-access.log" common </VirtualHost>
三、基于端口
修改配置文件
将原来的 Listen 80 , 改为 Listen 80 、Listen 8080
示例代码如下
<VirtualHost 192.168.1.10:80> DocumentRoot "D:\website\Apache24\htdocs\test1" ServerName www.test1.com </VirtualHost> <VirtualHost 192.168.1.10:8080> DocumentRoot "D:\website\Apache24\htdocs\test2" ServerName www.test2.com </VirtualHost>
以上内容仅供个人备注使用,若有不对的地方,还请留言更改,谢谢!
Apache 虚拟主机文档: http://httpd.apache.org/docs/current/vhosts/
官方配置示例:http://httpd.apache.org/docs/current/vhosts/examples.html
Linux下Apache配置示例:
http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html