linux下apache2的虚拟主机配置

1,起因

  在一星期前吧,大波说既然咱们有了自己的服务器,二级域名了。可以考虑怎样每人一个域名,分别指向我们各自的空间。想法挺好,避免我们个人的东西放在同一主页上。那就做吧

2,第一次尝试

  (1)在域名在万网买的,他们有个服务是支持泛域名解析。选择这个服务后,所有的三级域名  www.*.xin3e.com 都可以指向  www.xin3e.com的IP地址。

  (2)按照这个链接的方法进行尝试:http://hsst.blog.sohu.com/52046690.html

    因为Ubuntu下,Apache2的配置文件及目录结构不大一样,所以mods-avalilable下的是可用的模块。而真正启用了的模块是在mods-enable目录底下的。自己创建软连接实现启用rewrite模块。

    sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

  (3)sudo vi /etc/apache2/sites-enabled/000-default

     将其中所有的AllowOverride None 修改成 AllowOverride All.
     备注:000-default实则为sites-available/default的链接,而AllowOverride None则会完全忽略.htaccess文件,rewrite规则就不能生效

  (4)在httpd.conf文件末尾加上类似以下配置:  

RewriteEngine on
RewriteCond %{HTTP_HOST} ^[a-zA-Z0-9]+.xin3e.com$
RewriteRule ^$ /%{HTTP_HOST}
RewriteRule ^/([a-zA-Z0-9]+).xin3e.com/?$ /web/zyb/index [R]

  (5)重启apache,没有效果。

3,第二次尝试

   (1)删除上一次第(4)步在httpd.conf文件的操作。  原apache2的httpd.conf文件是空的,现只保留ServerName localhost

   (2)配置虚拟主机的目录。

    什么是虚拟主机(Virtual Host)。所谓的虚拟主机,基本上就是“让你的一台服务器上,有好多个‘主页面’存在。也就是说,硬件实际上只有一台主机,但由网址上来看,则视乎有好多台主机存在的样子”。举个例子:

    www.xin3e.com  ==>  IP/www/index.php

    IP/www目录下还有IP/www/zyb,IP/www/fb两个目录。那么:

    www.zyb.xin3e.com  ==>  IP/www/zyb

    www.fb.xin3e.com  ==>  IP/www/fb

    两个域名指向同一IP地址,进去则是不同的信息内容。这就是虚拟主机的主要功能,它可以让你的多级域名对应不同的主网页目录(DocumentRoot 参数),所以看起来像有多台实际主机的样子。

    有1)基于IP地址的虚拟主机配置,2) 基于IP和多端口的虚拟主机配置,3)单个IP地址的服务器上基于域名的虚拟主机配置,4)在多个IP地址的服务器上配置基于域名的虚拟主机。今天只展示单个IP地址的服务器上基于域名的虚拟主机配置。

    (3)修改配置文件  /etc/apache2/sites-available/default

    添加: 

<VirtualHost *:80>
        ServerName www.zyb.xin3e.com
        DocumentRoot /home/normal/website/zyb
        ServerAlias zyb.xin3e.com
        ErrorLog /var/log/apache2/error-zyb.xin3e.com.log
</VirtualHost>

   Apache中涉及到的相关选项说明:

   ServerName  (设定虚拟主机的名称)

   DocumentRoot  (指定虚拟主机的网站主目录)

   ServerAlias    (设定虚拟主机的別名)

   ErrorLog    (虚拟主机发生错误时要记录在哪个目录,可不设)

  (4)保存,重启apache2

    sudo /etc/init.d/apache2 restart

  (5)测试,成功。

    备注:这是大波一星期前给我提的想法,上星期尝试失败后,一周没找到合适的时间。今天给了个了解。其实虚拟主机配置中一般都包含<Directory></Directory>进行目录的详细配置,但我还不甚了解其作用和必要性。暂时未处理。欢迎大家留言。

 

原文地址:https://www.cnblogs.com/zhangyabin---acm/p/4358510.html