• 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>进行目录的详细配置,但我还不甚了解其作用和必要性。暂时未处理。欢迎大家留言。

     

  • 相关阅读:
    EF初始化mysql数据库codefirst
    css盒子模型、文档流、相对与绝对定位、浮动与清除模型
    微信群打卡机器人XiaoV项目开源 | 蔡培培的独立博客
    关于12306Bypass-分流抢票
    剑指Offer刷题总结
    写在前面
    mysql/mongo/nginx手册整理(2021版)
    linux(centos7) 查看磁盘空间大小
    vue中axios.post的复杂参数传参不支持的解决办法
    webApi跨域Cross问题的简单解决
  • 原文地址:https://www.cnblogs.com/zhangyabin---acm/p/4358510.html
Copyright © 2020-2023  润新知