解决方案:虚拟主机是设置在httpd-vhosts.conf还是vhosts.conf还是httpd.conf?
答案是:都可以。但是推荐在vhosts.conf中设置。
——官方文档的举例是在httpd.conf中设置的。
——百度一下会发现99%都是在httpd-vhosts.conf中设置的。但是这种设置会存在一些问题,比如设置后localhost打不开等等问题,虽然解决方案简单,但是毕竟感觉不太保险。
——在vhosts.conf中设置的话,比较简单,而且没有什么幺蛾子问题。
<VirtualHost *:80> ServerName localhost DocumentRoot "E:\WWW" DirectoryIndex index.html index.php <Directory "E:\WWW"> Options Indexes Order Allow,Deny Allow From All </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.hellocations.com DocumentRoot "E:\hellocations" DirectoryIndex index.html index.php <Directory "E:\hellocations"> Options Indexes Order Allow,Deny Allow From All </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.sina.com DocumentRoot "E:\sina" DirectoryIndex index.html index.php <Directory "E:\sina"> Options Indexes Order Allow,Deny Allow From All </Directory> </VirtualHost>
127.0.0.1 www.hellocations.com 127.0.0.1 www.sina.com
# Virtual hosts #Include conf/extra/httpd-vhosts.conf …… Include conf/vhosts.conf # Secure (SSL/TLS) connections #Include conf/extra/httpd-ssl.conf
——方法一:这个百度一下即可。
——方法二:查看官方文档,或者下载一个离线的apache手册。
——方法三:看配置文件中的示例。在httpd-vhosts.conf中有示例,如下。这也是为什么99%的人都在这个配置文件中配置的原因吧。不过apache的配置文件都是相通的。也就是说,有一个主配置文件httpd.conf,在其他地方还有很多分散的配置文件,当然这些分散的配置文件要想生效就需要在主配置文件中包含一下。思想和import或者include一样一样的。
# Add any other Virtual Hosts below #<VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot "/Apache24/docs/dummy-host.example.com" # ServerName dummy-host.example.com # ServerAlias www.dummy-host.example.com # ErrorLog "logs/dummy-host.example.com-error.log" # CustomLog "logs/dummy-host.example.com-access.log" common #</VirtualHost>
解决方案:虚拟主机是设置在httpd-vhosts.conf还是vhosts.conf还是httpd.conf?
原文:http://blog.csdn.net/weisubao/article/details/43536723