• 虚拟主机详细的配置


    配虚拟主机的主要目的:在一台web服务器上,虚拟出多个web站点!

    首先来看一下动态网站访问的基本原理

    一.配置基于域名的虚拟主机

    Apache的虚拟主机分成两种:

    基于IP地址的虚拟主机   192.168.96.12  192.168.96.13

    基于域名的虚拟主机  www.test.com   www.shop.com

    而我们要做的都是基于域名的虚拟主机(为每一个web站点分配不同的域名(服务器名),根据浏览器所访问的域名的不同的,而查看不同的目录资源(不同的网站!))

    我们现在要做的:

    访问www.test.com的时候,访问上面test目录下的web资源

    访问www.shop.com的时候,访问上面shop目录下的web资源

     以上的工作是由Apache来完成的,所以需要修改Apache的配置文件!

    注意:

    Apache默认的提供了一个专门配置虚拟主机的一个配置文件:

    在conf/extra/httpd-vhost.conf

    开始配置

    第一步:需要在主配置文件里面加载虚拟主机的配置文件

     

    第二步:在虚拟主机的配置文件中创建虚拟主机

     一台虚拟主机最基本的信息有:

         域名(服务器名):是通过ServerName指令来完成!

         目录(站点所在的根目录):是通过DocumentRoot指令来完成的!

       

        此时,重启Apache!一台虚拟主机就搭建完成!  但是也就只是搭建完成,还是无法访问。

       

    第三步:配置浏览器端的域名解析

       此时,浏览器应该利用域名去访问服务器,但是浏览器需要先知道域名所对应的服务器的IP地址是什么!

       打开windows自带的hosts文件

       

     再次输入地址

    注意:如果配置了虚拟主机,那么原来的默认的文档根目录就失效了,或者说被第一个虚拟主机所覆盖了!为了解决这个问题,需要额外增加一个localhost的虚拟主机!

    上面的第一个虚拟主机就是为了解决这个问题!

     

    二.目录访问权限

       为了学习权限,在添加一台虚拟主机

       

      

    输入地址:www.xiaoshou.com/xiaoshou.html 结果:

    好吧,退一步,在输入:www.xiaoshou.com看看 

     

    好的,ok,跟我肛上了...

    因为Apache可以控制浏览器是否有能力访问某个目录!默认的,Apache拒绝所有目录的访问权限

    如果需要开放某个目录的访问权限,需要通过<Directory目录的路径>

     </Directory>指令段对该目录进行单独的设置!

    因为目录的配置,针对当前目录以及当前目录的子目录都生效,

    所以刚才的test和shop两个虚拟主机默认的都是可以访问的!

     

    所以,如果需要开访问itcast目录的访问权限,需要对该目录进行单独的设置:

     

    重启Apache!

    问题又来了,如果直接访问域名:

    而直接访问test虚拟主机的时候:

    也就是说,直接访问域名(服务器名)的时候,一共有三种情况:

    第一:直接访问默认的某个页面,比如上面的localhost

    第二:展示列表,比如上面的www.test.com

    第三:直接Forbidden

    配置索引页的指令:

    DirectoryIndex

    从左往右依次查找,存在就使用!

    允许展示列表的指令:

    Options Indexes

     

     重启Apache

     清理一下缓存

     

     三.Apache配置系统

    Apache的配置文件,分成主配置文件(httpd.conf以及extra下的其他配置文件)和分布式

     

    分布式配置文件

    概念:

    分散到各个目录中的Apache的配置文件,所以,其中的配置,只针对该目录及其子目录生效

    好处: 不用重启服务器,直接能生效

    第一,  在主配置文件中开启允许分布式配置文件的权限

    利用指令Allowoverride all

     

    第二,  在相应的目录下增加分布式配置文件

     添加.htaccess文件方法

        1.在sublime直接生成保存

        2.用命令行生成

    分布式配置文件的名称:.htaccess

    里面所写的配置,与<directroy></ directroy>指令端里面的配置的基本一样!

     

    特点

    修改之后立即生效!不用重启Apache,说明Apache每次读取到该目录的时候

    ,都要对里面的分布式配置文件进行读取!

  • 相关阅读:
    IIS配置
    sql表值函数中实现类似split功能
    毕至居预约系统设计图第十二组
    毕至居预约系统研发需求分析——第十二组
    MASA Blazor多页签组件
    关于Linux Oracle下的表空间文件删除不干净的处理方法
    命令行下对apk签名
    android自定义绘制TableLayout,类似.net中DataGrid控件
    使用Arcgis tools fix后Android不能生成Apk包异常解决方法
    SyncML一种平台无关的信息同步标准协议
  • 原文地址:https://www.cnblogs.com/mrszhou/p/7407160.html
Copyright © 2020-2023  润新知