apache中虚拟主机的配置

时间:2023-03-09 08:05:24
apache中虚拟主机的配置

一、两种方式:基于域名的虚拟主机和基于IP地址的的虚拟主机  (这里基于前者)

二、作用:实现在同一个web服务器下,同时运行很多个站点(项目)

三、虚拟主机的配置

  1、在核心配置文件中加载虚拟主机配置文件

Apache中,默认的提供了一个专门配置虚拟主机的配置文件  conf/extra/httpd-vhosts.conf,但是Apache在启动的时候只会读取核心配置文件conf/httpd.conf。因此,需要开启它:在httpd.conf中,找到Include  conf/extra/httpd-vhosts.conf,去掉前面的注释符"#"。

  2、在虚拟主机的配置文件中创建虚拟主机

<VirtualHost *:80>

  ServerName    //服务器名(域名)  例:www.itcast.com

  DocumentRoot  //文档根目录      例:"h:/jiuyeban/homepage"

</VirtualHost>

  3、配置浏览器端的域名解析

更改本地的hosts文件,将域名与IP地址对应起来。hosts文件路径为:C:\Windows\System32\drivers\etc\hosts,或者在运行里面输入:drivers,再进入etc也能找到hosts文件。

  注意:如果配置了虚拟主机,那么原来默认的文档根目录就发生了改变,被第一个虚拟主机所覆盖,如果不想被改变,要么修改要么重新再配置一个主机。

四、目录访问权限

  1、我们在访问某一个目录的时候,可能有三种情况:

    第一种:直接访问某个默认的页面;

    第二种:展示文件列表;

    第三种:Forbidden

  2、在Apache中,默认是deny from all,如果要开放某一个目录,需要单独进行配置。

<Directory  “目录”>

  Allow from all

DirectoryIndex  index.html  index.php  default.php   //配置索引页(设置默认首页)

Options Indexes    //允许展示列表(设置默认首页无法显示时,是否允许列出目录结构)

</Directory >

  为了方便管理,一般的做法是将该配置指令放和虚拟主机放在一起。

五、分散式配置文件

  1、分散到apache各个目录的配置文件,只针对该目录以及该目录的子目录有效。因为有些东西不希望用户能直接访问到,则单独设置权限。

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

  2、.htaccess文件的特点:在此配置文件中对apache的配置不需要重新启动Apachc服务。

    主要作用:域名重定向、防盗链、自定义错误页面。

  .htaccess文件的优先级最高,可以书写任何主机相关的配置

3、在主配置文件(虚拟主机httpd-vhosts.conf)中,规定哪个目录可以使用分布式配置文件

  在对应的<Directory "目录"></Directory>中,使用Allowoverride设置是否开启外部的配置文件(.htaccess),all或者none

4、其他设置

  Order  //设置当前目录的访问权限

    Order allow , deny  //如果没有明确的允许项则全部拒绝

    Order deny , allow  //如果没有明确的拒绝项则全部允许

在Apache中,默认是deny from all,如果要开放某一个目录,需要单独进行配置。