Apache虚拟主机配置

Apache虚拟主机配置

    这几天在Windows 2008 R2平台下捣腾一些网站服务,其中涉及到Apache在Windwos上的配置,在此作下笔记,以后备查。

一、什么是虚拟主机

    虚拟主机(Virtual Host)是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一台虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP、E-mail等)功能。

二、Apache中的虚拟主机

    术语虚拟主机指的是在单一机器上运行多个网站 (例如 www.company1.com 和 www.company2.com) 。 虚拟主机可以“基于 IP”,即每个 IP 一个站点; 或者“基于名称”, 即每个 IP 多个站点。这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。

    Apache 是第一个支持基于 IP 的虚拟主机的服务器。 Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。 基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机.

三、Windows 2008 R2下配置Apache

1、打开到httpd.conf配置文件,查找  

# Virtual hosts
# Include conf/extra/httpd-vhosts.conf

修改为:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

2、打开目录{Apache2 安装目录}/conf/extra,找到httpd-vhosts.conf文件,根据文件提供的例子,添加新的虚拟主机配置命令:

<VirtualHost IP:80>
    ServerName sub.domain.com
    DocumentRoot "d:/wamp/www/site/"</VirtualHost>

另外,可以同时为该虚拟主机目录设置相应权限:

<Directory "d:/wamp/www/site/">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

3、重启Apache服务。

四、总结

    这里只是学习到Apache基于名称的虚拟主机的配置(即每个IP多个站点),Apache对虚拟主机的支持远不如此,留个念想,有空继续Day day up。


+++++++

Apache虚拟目录设置

一:关于apache虚拟目录alias
  关于apache虚拟目录的问题,apache的config文件中documentRoot 后面的是apache在解析页面时候的跟目录,如果在本机上同是存在两个工作目录那么如果不虚拟(alias)目录的话,需要不断修改documentroot的路径,然后重启apache,相当麻烦,解决这个问题的办法之一就是设置虚拟目录,具体做法如下:
Alias /虚拟目录名/ "盘符:/路径/"

<Directory "盘符:/路径/"> 
   Options Indexes MultiViews 
   AllowOverride None 
   Order allow,deny 
   Allow from all 
</Directory>

但是虚拟目录有一个不好处是,工作目录只能放到某个盘的根目录下,比如:d:/workfolder1 , d:/workfolder2,如果不这样放,那么apache在解析根的时候就出问题了。
比如我现在的工作目录是:d:/workspace/workfolder1 , d:/workspace/folder2,那么用alias就实现不了了,如何解决呢,用apache的虚拟主机
二:虚拟主机:

具体做法是:
   NameVirtualHost *

    <VirtualHost *>
    ServerName www.domain.tld
    DocumentRoot d:/workspace/workfolder1
    </VirtualHost>

    <VirtualHost *>
    ServerName www.otherdomain.tld
    DocumentRoot d:/workspace/workfolder2
    </VirtualHost>
当然里面还有

ServerAlias 
ServerPath
等参数,可以不设置,具体参考官方手册:http://httpd.apache.org/docs/2.0/vhosts/
如果是在本机上还需要解决hosts的问题,你这样虚拟之后如果host文件不做转向处理,那么是有冲突的,需要在host文件中加这两句:
127.0.0.1 www.domain.tld
127.0.0.1 www.otherdomain.tld
然后关掉浏览器,重启apache服务,ok,这样就搞定了,通过浏览器这样访问自己的工作目录就可以了
http//:www.domain.tld访问:d:/workspace/workfolder1
http://www.domain.tld访问:d:/workspace/workfolder2


原文地址:https://www.cnblogs.com/sunscheung/p/4839447.html