一、两种方式:基于域名的虚拟主机和基于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,如果要开放某一个目录,需要单独进行配置。

apache中虚拟主机的配置的更多相关文章

  1. ubuntu下的apache的虚拟主机的配置

    ubuntu下的虚拟主机的配置相对window下的虚拟主机配置有些许不同. 对于要新建的虚拟主机,我们可以有如下几个步骤: 1.在/etc/apache2/sites-available/目录下新建一 ...

  2. Web服务器(Apache)虚拟主机的配置

    一.定义    所谓虚拟主机是指在一台服务器里运行几个网站,提供WEB.FTP.Mail等服务.    二.虚拟主机的实现方法有三种:    基于IP的方法,基于主机名的方法和基于端口的法官法.    ...

  3. 《Apache之虚拟主机的配置》——RHEL6.3

    1.安装httpd软件包: Yum install httpd 2.启动apache服务: [root@redhat Desktop]# /etc/init.d/httpd start Startin ...

  4. windows下Apache的虚拟主机配置

    1.Apache虚拟主机: 在Apache上有关于虚拟主机的具体说明,具体可以参考Apache手册,这里简单的说一下虚拟主机主要分为两种: 1.基于主机名的虚拟主机(一个IP地址,多个网站) 2.基于 ...

  5. apache 虚拟主机详细配置:http.conf配置详解

    apache 虚拟主机详细配置:http.conf配置详解 Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd. ...

  6. win7下配置Apache本地虚拟主机

    我们有时候从网上下载下来的php源码很多都是应用在网站根目录下的,而我们又想在本地先测试一遍确定没有问题了再上传空间,但一换到子目录下的时候因为路径问题,使得许多图片.内容都无法显示. 这个时候我们就 ...

  7. Apache 虚拟主机 VirtualHost 配置

    虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同 ...

  8. Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程

    因为某种需求,可能是因为早期的项目需要低版本的php,和目前开发所用的版本不太一致,我们需要给不同的虚拟主机配置不同版本的PHP.避免去额外配置多个Apache,等iis和apache共存的麻烦. 下 ...

  9. Apache+php+mysql的安装与配置 - 之三(Apache的虚拟主机配置)

    Apache+php+mysql的安装与配置 - 之三(Apache的虚拟主机配置) Apache核心(Core)配置 VirtualHost 语法 <VirtualHost addr[:por ...

随机推荐

  1. dpkg: 处理归档 /var/cache/apt/archives/软件名 (--unpack)时出错:由于已经达到 MaxReports 限制,没有写入 apport 报告。

    一.环境介绍: OS:ubuntu16.04 64bit 二.错误如下: 正准备解包 .../libqt4-script_4%3a4.8.7+dfsg-5ubuntu2_i386.deb  ...正在 ...

  2. MySQL环境部署

    阅读目录: 1.Windows下安装MySQL 2.Linux下安装MySQL 序章: MySQL是个小型的数据库,用来自己做小项目,做学习练习什么的再适合不过了,不过新手总会被一些莫名奇妙的问题难住 ...

  3. [linux] scp无密码拷贝

    源服务器为s,ip为111.111.111.112. 目标服务器为d, ip为111.111.111.111 1>在源服务器新建用户 test_s, useradd test_s -g user ...

  4. PHP设计模式

    设计模式总的分为三种,创建型模式.结构性模式.行为型模式 1.创建型模式 创建型模式为根据实际情况来创建对象,创建的模式又分为对象创建模式和类创建模式,对象创建模式会把对象创建的一部分在另一个对象中实 ...

  5. ajax提交表单+前端验证小示例

    <script src="http://css.jj.cn/js/jquery.js" type="text/javascript"></sc ...

  6. PHP Fatal Error: call to undefined function mysql_connect() [duplicate]

    You shouldn't use mysql_* functions to start with. They are deprecated as of PHP 5.5. Use mysqli or ...

  7. <mvc:annotation-driven/>与<context:annotation-config/>的区别

    在使用注解的方式配置SSM的时候一般会配置<mvc:annotation-driven/>与<context:annotation-config/>,有时候会对两者的概念有些区 ...

  8. iOS中的数据持久化方式

    iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...

  9. 如何解决子元素设了margin-top之后父元素所受的影响

    解决方法: 1.在父元素上加:overflow:hidden. 2.给父元素加border; 3.外容器上加上padding.

  10. JavaScript模块化

    1.commonjs 导入: var math = require('math'); math.add(2,3); // 5 导出: module.exports={} 应用会停止并等待加载 2.AM ...