03 主机(站点)配置 && 虚拟目录设置

默认情况下,Apache安装成功,就默认配置好了一个站点,该站点的实际位置:Apache安装位置/htdocs

站点其实就是一个文件夹嘛,你可以将任何文件夹当作站点!可以打开Apache的配置文件httpd.conf进行配置。一个站点的2个核心信息:

  • 主机名:
    搜索ServerName,去掉注释可以进行主机名配置


    server name.PNG
  • 站点位置(物理路径):
    1.搜索DocumentRoot,去掉注释可以进行站点位置配置,填上你想它作为站点的文件夹路径(好像本来就没有注释的?)
    document root.PNG

    2.允许站点访问,还需要下面一个设置,路径为你想要作为站点文件夹的路径,其余不用写,都已经写好了
    allow.PNG

    3.还可以为站点设置访问首页,中输入“DirectoryIndex 根目录下的文件名”,如例,则01.html被作为站点首页。
    index.PNG

一.目录访问权限

1.集中式设置访问权限。一个站点就是一个目录,每个目录都应该给予设置“访问权限”,其基本语法如下:


    #设置当一个请求没有指定文件名、并且又没有默认首页的时候,显示文件目录
    Options Indexs
    #设置权限控制,“Allow”和“Deny”的先后顺序
    #如下设置了先设置拒绝后设置允许
    order Deny,Allow
    #Deny设置要拒绝访问的IP,基本没什么用?换个IP就能访问了?或者“墙”有用?
    #拒绝了一个IP
    Deny From 178.163.3.4
    #拒绝了256个IP。以以下开头的都拒绝访问。想拒绝更多,IP地址写越得短
    Deny From 178.163.3
    #设置允许所有访问
    Allow From all
    #设置访问首页,可设置多个,按顺序查找返回
    DirectoryIndex 01.html 02.php

2.分布式设置访问权限。以上集中用Directory来设置访问权限,是很不方便地:1.每次更改都要重启Apache服务 2.每个站点地子目录,不方便就行访问权限设置。所以我们!有了分布式设置权限地方法,分两步进行设置:

  • 在Directory中写上,表示允许分布式设置访问权限
AllowOverride all
  • 在任意一个子目录下建立文件 .htaccess (windows下笔记本不能新建此类文件,用代码编辑器件就好了),在文件中写上拒绝或者允许的IP,写法和在Directory中是一样的
Deny From all
Allow From 178.168.3.4

二.多站点配置

多站点配置分3步进行:

  • 在httpd.conf中,查找关键词 vhosts,去注释打开多站点虚拟主机配置文件项,使能够载入文件httpd-vhosts.conf
    vhosts.PNG
  • 在conf/extra/httpd-vhosts.conf文件中,设定希望提供多站点服务的“IP地址”“端口号”,通常端口号 默认是:*:80, * 代表所有IP端口都是80”。有些已经默认写好了,没有则自己写上。
    设置端口号:
    NameVirtualHost.PNG
  • 先把httpd-vhosts.conf里默认的两个example删除或者注释掉,就是这两个,不知道啥玩意说了例子没给默认注释掉~:


    example hosts.PNG

    然后按照例子的格式那样在里面一个站点一个站点加上去就好了,想要多少个加多少个:


    #第一个站点的信息,关键3项
    #ServerAdmin,或者你用ServerName也是可以的
    ServerAdmin www.xxx.com
    #DocumentRoot
    DocumentRoot "站点目录绝对路径"
    
        Options Indexes
        Order Deny,Allow
        Allow From all
        DirectoryIndex 首页文件名
    
    剩下的3项就不学习了,以后有兴趣再研究
    #ServerAlias项为站点别名设置
    #ErrorLog项为错误日志设置
    ##CustomLog项为访问日志设置


    #第二个站点的信息

在多站点配置中,第一个站点被称为默认站点,如果请求域名无法跟任何一个站点匹配,会将请求当作请求默认站点去处理。
一旦实现多站点设置,最初的默认站点就失效了,也就是localhost不能用了,嘛,可以将localhost当作普通站点名来用的嘛。

(额外提一下,设置好的主机名,要在hosts里配置上对应的IP地址才可以使用的,hosts所在目录:C:\Windows\System32\drivers\etc,以管理员方式打开写上就可以了: IP地址 对应主机名)

三.目录别名(虚拟目录)设置

  • 真实目录,某个站点www.xxx.com(文件夹)下有一个目录为a1,则可以这样访问该目录,www.xxx.com/a1
  • 虚拟目录,站点下不存在某目录名,却可以用同样的语法形式去访问,如站点下没有a2目录,却www.xxx.com/a2可以进行访问

设置虚拟目录的方法:

  • 在httpd-vhosts.conf中一个站点的设置中,设置虚拟目录名字,以及其对应的真实目录位置
  • 设置该真实目录的访问权限(所有目录都是默认禁止访问的!

    ServerAdmin www.xxx.com
    DocumentRoot "站点目录绝对路径"
    
        Options Indexes
        Order Deny,Allow
        Allow From all
        DirectoryIndex 首页文件名
    
    #设置一个虚拟目录
    Alias /a2  "真实目录路径"
    #设置该虚拟目录对应真实目录的访问权限
    
        Options Indexes
        Order Deny,Allow
        Allow From all
    

你可能感兴趣的:(03 主机(站点)配置 && 虚拟目录设置)