虚拟主机配置

端口监听(自拟定端口号)

  端口:一个数字,目的是让一台电脑(对外只有一个IP)能够对外提供多项服务(多种功能)。

  常见的服务和端口对应(默认):

  web服务器: 80      ftp服务器 :21      mysql数据库服务:3306   

  一台电脑有6万多个端口,但通常一台服务器一般只提供几个或十几个服务

  apache的端口监听设置,指设定apache这个软件针对当前服务器的哪些端口提供web服务。

   在httpd.conf文件中进行配置

  原始配置 Listen 80

  可增加对另一个端口的服务:Listen 808

主机配置关键项(自定义网站根目录)

   主机,虚拟主机,web站点,是指一个可以通过浏览器并使用某个域名进行访问的“web应用”。

   一个主机(站点)核心包括

        主机(站点)名称:ServerName “主机名”

        主机(站点)的实际文件位置:DocumentRoot “站点的实际完整路径”

  apache的作用实际就是一个"转换"角色:将当前电脑中的某个文件夹,对外以某个域名(站点)的方式展现。换句话说:站点的本质就是一个文件夹。

  •   httpd.conf文件中的配置:

                ServerName www.php.com(默认情况下主机名前有#,即被注释,不起作用)

                DocumentRoot  ”E:/amp/apache/htdocs“(网站根目录可修改)

  apache工作原理:

          当一个请求通常为域名解析进入到当前apache并端口匹配成功后,apache就会开始提供服务。

             1.在站点设置中找到ServerName项,看是否匹配请求中的主机名

             2.如果找到,则在对应的目录(DocumentRoot配置项)中找相应的文件(可能是index.php或其他)

             3.如果找到,则返回该文件(或调用php语言模块执行后返回)

            4.如果第2步没有找到相应请求的主机名,那么就将第一个主机当作准备提供服务的主机

                   可见:只要IP解析和端口能够进入到当前服务器并匹配apache端口设定,则apache一定会提供服务---即使主机名不匹配。(在开发环境中域名解析在操作系统的hosts文件(也是系统文件)中设置,位置在:window操作目录/system32/drivers/etc/hosts)

目录的访问设置------修改设置的网站根目录及文件夹的权限,使其可以被访问

         一个网站的访问是有权限的。初始站点所对应的文件夹,安装的时候已经设置好权限,当修改网站根目录后,要对该文件夹的权限进行设置。

  1.          在httpd.conf中添加该文件的访问权限:

           <Directory "E:/amp/apache/htdocs">

                Options Indexes(用于设定“可显示文件列表”,当无可显示网页时)

                Order deny,allow(用于设定判断顺序:先拒绝,后允许)

                 Allow from all(允许所有,这里没有设定拒绝)

         </Directory>

       2.我们也可以使用一个单独的文件来控制文件夹的访问权限

            该文件的文件名必须是:.htaccess

           注意:

             (1)只有后缀和点号(无文件名部分)

             (2)该文件必须放在要被控制访问权限的文件夹中(不同的文件夹可以放不同的该文件)

             (3)其“上级文件夹”(通常是<Directory>设定的文件夹)必须使用如下代码允许.htaccess发挥作用

                      AllowOverride All

             (4).htaccess文件中出现的代码,几乎可以与<Directory>设定中出现的代码一样

             (5)如果.htaccess文件有效,则其设置会覆盖其上级设置

              (6).htaccess文件修改后可以立即发挥作用,无需重启apache

           示例:

                 .htaccess      DirectoryIndex index.php

                      在上级文件夹允许的情况下可发挥作用

其他相关设置
  • 设置默认网页

               我们访问网站时,可以指定要访问的网站,如:http://www.php.com/day/page.php也可以不指定,比如http://www.php.com/day

               对于后一种情况,是因为apache可以设定“默认网页”,形式为:

                   <IfModule dir_module>

                              DirectoryIndex index.html index.php(可以写多个,依次作为要用的默认网页)

                             (这句代码也可以写在<Directory “E:/amp/apache/htdocs”>设置下,只对该文件夹及其下属文件有效)

                 </IfModule>

              此时,对于没有明确指定要访问的网页请求时,会按顺序从前往后寻找,找到后返回给用户,如果没有找到,则文件访问权限设置中的Options Indexes发挥作用:显示该文件夹中的所有文件。

  • 主机别名设置

    在应用中,通常可以用两种形式来访问一个站点:

       http://www.php.com

       http://php.com

    此时,相当于“2个站点(主机名)”但访问的是一个内容,就需要使用主机别名来实现:ServerAlias 别名1 别名2 别名3。。。

    设置主机别名后,要在操作系统的hosts文件(也是系统文件)中进行修改,位置在:window操作目录/system32/drivers/etc/hosts,以便域名解析正确

  • 目录别名设置

                 目录别名也叫虚拟目录

                 一个站点是一个文件夹(目录),该文件夹中可以有其下级文件夹(目录)

                实际存在的下级目录,可以按正常的文件夹访问层级关系进行访问,比如:

                    http://www.php.com        根文件夹(站点目录)

                    http://www.php.com/day1   根文件夹中day1目录

               然而,在一个站点中,如果不存在某个文件夹(目录),可以通过配置项,来做到“对外”看起来却存在一样,比如:http://www.php.com/soft (站点中不存在soft目录),但我们可以让该地址可访问,这就是目录别名(虚拟目录)

               在httpd.conf文件中设置:(全局位置)(相对于多站点配置而言)

              <IfModulealias_module>

                      Alias  /soft "E:\amp\php\apache22"(真实路径)

             </IfModule>

         可见,通过技术可以将一个站点之外的“网页、数据、内容”也呈现在当前站点。

多站点配置

     1.首先,在httpd.conf中打开多站点配置文件:

          Include conf/extra/httpd-vhosts.conf(去掉#号)

     2.打开该文件,在httpd-vhosts.conf中设置要进行多站点配置的ip和端口,默认已设置好

        NameVirtualHost *:80(*代表当前服务器的所有IP地址,通常只有一个)

     3.往后依次一个一个站点配置就可以了,可设置主机名,主机目录,目录访问等。

         注意:一旦进行多站点配置,原来httpd.conf中的默认站点设置就失效了。

     示例:

          <VirtualHost *:80>(*:80与前边NameVirtualHost的设置一致)

              ServerName  www.php.com

              ServerAlias  php.com(主机别名设置,在域名解释正确的情况下可用该别名访问)

              DocumentRoot " E:/amp/apache/docs/dummy-host.bupt.edu.cn"

             <Directory " E:/amp/apache/docs/dummy-host.bupt.edu.cn">(文件夹路径设置与DocumentRoot后一致)

                    Options   Indexes

                    AllowOverride All(允许该文件夹中的.htaccess文件生效,根据需要设定)

                   Order allow,deny

                   Allow from all

                  Deny from 192.168.3.33

                  DirectoryIndex index.html index.php(设定默认网页)

              </Directory>

               Alias  /soft  “E:\amp\php\apache22”(此别目录只在该站点下有效)(对多站点配置而言)

       </VirtualHost>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值