以前本地的测试网站都是通过 localhost/xxx这种方式访问,比较麻烦,今天发现可以通过hosts文件给本地虚拟机绑定域名。
1、绑定本地虚拟主机
hosts文件中添加:
127.0.0.1 t.com 127.0.0.1 7.t.com 127.0.0.1 bbs.t.com |
hosts文件不支持通配符,不能泛解析,有点遗憾。
然后建立虚拟主机:
# Ensure that Apache listens on port 80 Listen 80 # Listen for virtual host requests on all IP addresses NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "D:/xampp/htdocs" ServerName www.t.com ServerAlias t.com. *.t.com # Other directives here </VirtualHost> <VirtualHost *:80> DocumentRoot "D:/xampp/htdocs/bbs" ServerName bbs.t.com # Other directives here </VirtualHost> |
2、虚拟机中绑定
debian下lnmp环境,ip 192.168.242.134
修改host文件:
192.168.242.134 test.com 192.168.242.134 dz.com |
lnmp中添加dz.com虚拟主机。
效果1(test.com)
效果2(dz.com)
上面方法有一点问题,虚拟主机配置应在 extra/httpd-vhosts.conf文件中,并且只能监听一次80端口,否则会报错。
127.0.0.1 http://www.tecbbs.com
127.0.0.1 http://www.annhe.net
2、打开xampp\apache\conf\httpd.conf文件,搜索 “.. conf/extra/httpd-vhosts.conf”,确保前面没有 # 注释符,也就是确保引入了 vhosts 虚拟主机配置文件。
开启了httpd-vhosts.conf,默认的httpd.conf默认配置失效(确保 httpd-vhosts.conf 文件里也开启了虚拟主机配置,见第3条),访问此IP的域名将全部指向 vhosts.conf 中的第一个虚拟主机。
3、在虚拟主机设置文件xampp\apache\conf\extra\httpd-vhosts.conf里设置:
取消 NameVirtualHost *:80 前面的 ##,这样就启用了 vhosts.conf ,默认的httpd.conf默认配置失效。虚拟主机配置将只设置在 httpd-vhosts.conf 里。
DocumentRoot /xampp/htdocs/bbs
ServerName http://www.tecbbs.com
DocumentRoot /xampp/htdocs/blog
ServerName http://www.annhe.net
4、 设置完了第3条之后,你会发现访问 localhost直接指向到设置的 a 那个路径去了,这个问题在第2条有讲。也就是开启了 vhosts 后,默认的 httpd 的配置就会失效了,默认的访问就指向到 vhosts 里的第一条设置去了。这时候你要把 localhost 的目录配置给设置回来。
DocumentRoot /xampp/htdocs/
ServerName localhost
至此,XAMPP 的虚拟主机设置完毕,现在 访问 localhost 还是原来的 XAMPP 的帮助指南,访问 http://www.tecbbs.com 将指向到绑定的 tecbbs 目录,访问 http://www.annhe.net 将指向到绑定的 blog 目录。
参考http://blog.163.com/mike_homis/blog/static/201049482009101223650238/