本地开启apache虚拟服务器
一般来说,服务器是可以托管多个网站的,只要服务器开启虚拟主机的功能,原理是根据来源的host进行判断,不同的域名实现不同的文件访问,这样就可以实现一个服务器托管不同网站了,只要服务器的性能和带宽足够强大,理论可以托管的网站无上限。
但是如果在本地怎样实现开启虚拟主机呢?因为本地是使用localhost或者127.0.0.1进行访问的,无法使用其他的域名,服务器无法判断请求的域名的区别,也就无法判断访问的是网站的两个文件夹。
深入一点就会涉及到DNS的知识,其实就是域名到ip的转换过程,访问localhost的时候其实就是本地的DNS服务将localhost转换成127.0.0.1,从而实现的访问。
DNS的服务器一般是空间商提供的,要实现本地不同的域名,访问同一个ip要怎么实现呢?DNS不仅在专业的服务器上存在,而且在Windows电脑和浏览器系统中都会有DNS的缓存,电脑上的host文件,记录着域名与ip之间的对应关系。文件位置c:\windows\system32\drivers\etc\hosts
在文件最下方添加一条记录,127.0.0.1 local.com,这样访问local.com这个域名的时候,就会访问本地的ip 127.0.0.1,前提是开启了本地服务器,当然你觉得好玩的话,可将百度的域名添加的本地,127.0.0.1 baidu.com 浏览器访问baidu.com的时候会访问本地127.0.0.1(黑客早期的时候入侵电脑其中一种就是host劫持.)
修改好了host文件后(需要管理员权限),我们就有了两个域名了,(localhost与local.com)怎样实现不同的域名访问不同的文件目录从而实现两个站点呢?需要开启Apache的虚拟主机的功能。
假设apache安装在x:\apache ,那么先打开x:\apache\conf\httpd.conf,查找"Include conf/extra/httpd-vhosts.conf" 若前面有‘#’将其删掉,若没有这行语句,则手动添加。
接着到 x:\apache\conf\extra目录中找到或新建httpd-vhosts.conf文件,可以看见:
文件中的内容之间复制粘贴一份就好了,因为不同Apache版本具体的内容不一样,然后修改servername 和DocumentRoot,(前提是已经在host文件中添加了local.com),以及文件的路径,默认在c:/wamp64/www,现在新建一个文件夹wwww,并在配置文件中添加路径c:/wamp64/wwww. 这样就实现使用域名localhost的访问的是网站的www文件夹,使用local.com访问的网站的文件夹是wwww。