zoukankan      html  css  js  c++  java
  • httpd.conf文件设置装备安放详解3

      前导发轫:网海拾贝





    要是您对Apache有必定的见地,格外是对几个设置装备安放文件有必定的见地,这将会有助于您对本文内容的清楚明显;要是适值您不是很见地这几个设置装备安放文件的运用,那么就借着这个机会来一路认识一下吧。
    一、关于CGI执行脚本的设置装备安放
    这里有两种设置CGI脚本的方法。第一、CGI的脚本文件以.cgi为扩展名;第二、设置脚本可执行目次。可是这两种方法都必要将要执行的文件设置为711,才可以被执行。
    第一种方法,我们必要在access.conf文件种将你要刊行的目次设置为Option ExecCGI All,在srm.conf本钱设置装备安放文件中,加上下列一句:
    AddHandle cgi-script .cgi
    如许在悉数的目次种只需你的文件是.cgi为扩展名的,且文件造访权限为711的,无论给文件在你刊行目次的任何一此中间都可以做为CGI被Apache效力器调用。这种方法一样凡是没有第二种方法战役。
    第二种方法,是将一个目次作为一个可执行目次,将悉数的cgi文件都放在此中,这里就纷比如定非得因而.cgi为扩展名得文件可以执行,而是只需有711属性的文件就可以被执行,并且其它的非可执行文件都被压制造访。我们的默许设置装备安放文件种就有一个很好的例子:
    access.conf:
    <Directory /home/httpd/cgi-bin/>
    Allow Override None
    Options ExecCGI
    </Directory>
    srm.conf
    ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
    如许只需在/home/httpd/cgi-bin/目次中的可执行文件都可以被Web效力器调用,而其它的非可执行文件将被回绝造访。
    二、设置装备安放用户的刊行目次
    这里有两种设置方法:
    第一种是琐屑的默许方法,即用户目次下的public_html目次为用户的刊行目次,且默许的主页文件为index.html,且该目次不支持CGI。
    第二种是在其它目次种专门为用户设置颁发目次,如我想在/home/html目次做为用户的web目次,那管理员就应该在该目次下为每一个用户设置一个子目次,如:/home/html/user01、/home/html/user02等。那么,你的srm.conf文件中的UserDir前面就不能再是 public_html了,应该改为:UserDir /home/html/*/,注重这里的“*”代表anyone,当你再阅读器中乞求一个如http://www.domain/~user01时, Apache...ndex.html文件。
    这种设置不必要到access.conf中设置该目次的造访属性,另有,当我们设置假造主机时也不必设置目次的造访属性,可是要是你想让某个目次具有CGI权限,都要到Access.conf文件中去设置装备安放目次的造访权限,如:你想让你的悉数用户在他们的颁发目次中具有CGI造访权,则必要在你的access.conf中如许设置:
    <Directory /home/html/*/cgi-bin/>
    Allow Override None
    Options ExecCGI
    </Dirctory>
    注重这里设置用户目次中的cgi-bin子目次为cgi执行目次,这是一种战役的设置,并且也是一种UNIX的风尚。
    三、若何将Apache效力器设置为inetd的子效力
    当你安设了Apache后,默许设置为standalone方法运转,要是你想将它设置为inetd的子效力,首先在每次激活Linux时不激活 httpd,然后编辑/etc/inetd.conf,在此中插部属列语句:http stream tcp nowait root /usr/sbin/httpd httpd
    然后从头激活inetd效力器。如许你用ps -aux敕令反省进程运转环境时,你不会发现httpd的进程的存在,可是一旦有客户乞求一个页面时,inetd就激活一个httpd进程为该乞求效力,之后就主动开释,这种运转方法有助于撙节琐屑本钱,可是要是你的web效力很重要,一样凡是不发起设置为这种方法运转。
    四、将httpd.conf做为唯一的设置装备安放文件
    在Apache 中给用户供应了三个设置装备安放文件: srm.conf、 access.conf 和 httpd.conf files。实践上这三个文件是对等的,悉数的设置装备安放都可以放在一个零丁的httpd.conf文件中,实践上在Apache 1.3.2中就已经如许做了,在httpd.conf中应包罗以下两条指令来预防Apache对srm.conf和access.conf两个设置装备安放文件的造访:
    AccessConfig /dev/null
    ResourceConfig /dev/null
    在apache1.3.2中只需正文失以下这两行即可:
    AccessConfig conf/access.conf
    ResourceConfig conf/srm.conf
    五、用户受权和造访控制
    你大年夜要在造访某些网站时会遇到过如许的环境,当你点击某个毗连时,你的阅读器会弹出一个身份验证的对话框,要求输出账号及暗码,要是没有,就无法承继阅读了。有人会觉得这是用CGI做出来的,着实不然,这是WWW效力器的用户受权和造访控制机制在发扬传染冲动。

    你可否还记得在设置Apache效力环境的进程中,有<Directory>……..<./Directory>这个指令,可以对不合的目次供应不合的卵翼。可是如许的设定,必要从头启动效力器才会收效,矫捷性较差,议决AccessFile指令指定造访控制文件的方轨则对照矫捷,在Apache效力器中设置用户的造访控制权限步伐如下:
    1、首先对httpd.conf文件中止设置如下:
    <Directory /home/httpd/html>
    # AllowOverride FileInfo AuthConfig Limit
    # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Options Includes FollowSymLinks Indexes
    AllowOverride All //*注重AllowOverride 必定要设置为All,如许前面的.htaccess文件才会起传染冲动
    <Limit GET POST OPTIONS PROPFIND>
    Order allow,deny
    Allow from all
    </Limit>
    # <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    # Order deny,allow
    # Deny from all
    # </Limit>
    </Directory>
    #指定设置装备安放存取控制权限的文件称号
    AccessFileName .htaccess
    2、树立.htaccess文件內容
    要控制某目次的造访权限必须建树一造访控制文件,文件名前面指定的“.htaccess”,其内容款式如下:
    AuthUserFile 用户帐号暗码文件名
    AuthGroupFile 群组帐号暗码文件名
    AuthName 画面提醒笔墨
    AuthType 验证方法
    <Limit GET>
    暗码验证方法
    </Limit>
    用户验证方法AuthType今朝供应了Basic和Digest两种。
    暗码检修设定方法与httpd.conf中的相干设定相反。
    详细例子如下:
    AuthUserFile /etc/secure.user
    AuthName 战役认证中间
    AuthType Basic
    <Limit GET>
    require valid-user
    </Limit>
    3、建树用户暗码文件
    要是你是第一次树立用户暗码,敕令款式如下:
    htpasswd -c 暗码文件名 用户称号
    在下面的例子中,我们将用户暗码文件放到了/etc/secure.user文件中,以是这里应依据如下中止操纵:
    htpasswd -c /etc/secure.user sword
    次第会提醒你输出两次用户的口令,然后用户暗码文件就已经树立sword这个用户也添加终了了。
    要是要向暗码文件中添加新的用户,依据如下敕令款式中止操纵:
    htpasswd 暗码文件 用户称号
    如许,从头启动httpd后,中止该WEB目次时就会有一个对话框弹出,要求输出用户名及用户口令了。
    4、若何淘汰造访控制对Apache性能的影响
    频仍的运用造访控制会对Apache的性能产生发火较大年夜的影响,那么,若何本领淘汰这种影响呢?最复杂也是最有效的方法之一便是淘汰.htaccess文件的数量,如许可以避免Apache对每一个乞求都要依据.htaccess文件的内容中止受权反省。它不但在当前的目次中查找.htaccess文件,它还会在当前目次的父目次中查找。
    /
    /usr
    /usr/local
    /usr/local/etc
    /usr/local/etc/httpd
    /usr/local/etc/httpd/htdocs
    /usr/local/etc/httpd/htdocs/docs
    凡是在根目次下没有htaccess文件,但Apache依然会中止例行反省以确定该文件确切其实不存在。这是影响很影响效力器事变遵守的事变。下面的方法可以消弭这个厌恶的进程:将AllowOverride选设置为None,如许Apache就会反省.htaccess文件了。将/根目次的 AllowOverride选项设为None,只将必要中止造访控制的目次下的AllowOverride选项设置为all,如下面的例子中将/根目次的 AllowOverride 选项封闭了,只翻开了/usr/local/etc/httpd/htdocs目次下的AllowOerride选项,如许,琐屑就只在 /usr/local/etc/httpd/htdocs中反省.htaccess文件,到达的进步效力遵守的目的。
    <Directory />
    AllowOverride None
    </Directory>
    <Directory /usr/local/etc/httpd/htdocs>
    AllowOverride All
    </Directory>
    要是除了根目次以外,另有其它寄放WWW文件的目次,你也可以接纳异常的方法中止设置。比如:要是你运用UserDir来许可用户造访自己的目次,AllowOverride的设置如下:
    <Directory /home/*/public_html>
    AllowOverride FileInfo Indexes IncludesNOEXEC
    </Directory>
    5、预防用户造访指定的文件
    琐屑中有一些文件是不相宜供应应WWW用户的,如:.htaccess、htpasswd、*.pl等,可以用<Files>到达这个目的:
    <Files .htaccess>
    order allow,deny
    deny from all
    </Files>
    用户造访控制三个.htaccess文件、.htpasswd和.htgroup(用于用户受权),为了战役起见,应该预防用户阅读此中内容,可以在httpd.conf中加入以下内容中止用户对此中止造访:
    <Files ~”/.ht”>
    Order deny, allow
    Deny from all
    </Files>
    如许这三个文件就不会被用户造访了。
    6、限制某些用户造访特定文件
    <Directory>可以对目次中止约束,要限制某些用户对某个特定文件的造访可以运用<Location>,比如:不许可非domain.com域内的用户对/prices/internal.html中止造访,可以用如下的设置:
    <Location /prices/internal.html>
    order deny,allow
    deny from all
    allow from .domain.com
    </Location>
    要是你要授于相应权限的机械没有地下的域名,请在你的/etc/hosts文件中,将其IP地址映射到某个指定的称号,然后在Location中对此中止设置,不然该选项是不起传染冲动的。
    7、只承继来自特定链接的造访
    例如,只让悉数来自 http://www.sina.com.cn/* 的链接的用户进入此目次,由其它链接来的访客都不得进入; " * "显露此网站底下悉数的链接。此中的 http://www.sina.com.cn/* 也可以是:http://202.106.184.200/* 或是指定文件 http://www.sina.com.cn/news.html
    .htaccess文件的内容如下:
    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName ExampleAllowFromSpecificURL
    AuthType Basic
    <Limit GET>
    order deny,allow
    deny from all
    referer allow from http://www.sina.com.cn/*
    </Limit>
    六、若何议决Apache造访挂接到mnt中的目次内容
    在Linux下,要阅读光盘的内容,必必要先将光盘挂接到/mnt/cdrom上,在Linux下造访dos或其它分区也一样,都要将其先挂接到/mnt下。下面供应的方法,可以议决Apache显示上挂的目次内容:
    1、 先将必要挂接的内容挂接到mnt下,如:
    mount –t iso9660 /dev/cdrom /mnt/cdrom
    2、修正/usr/local/etc/httpd/conf中的srm.conf文件(在Apache1.3.2中修正httpd.conf)
    加入又名支持:
    # Alias fakename realname
    # alias for netware server //
    Alias /netware/ /mnt/MYDOM_NW/vol1/home/htmldocs/
    Alias /winNT/ /mnt/MYDOM_NT/
    Alias /unix/ /mnt/MYDOM_UNIX
    着实这一步另有个最复杂的方法便是直接在WWW文件目次下建树链接目次,比如:
    ln –s /mnt/MYDOM_NT/ winNT
    也能到达异常的成效。
    3、最初,用Directory 别离指定用户对下面这几个目次的造访权限:
    <Direcory “/mnt/MYDOM_NT”>
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    注重, Options中的Indexes必定要注明,不然被翻开的目次中若没有Index.html文件,用户无法阅读整个目次的布局,效力器会前往错误指示。
    这些事变都完成后,别忘了从头启动Apache。在客户端议决 http://www.yourdomain/CDROM/造访光盘内容,其它琐屑以此类推

    #DocumentRoot "/usr/local/apache/htdocs"
    #设置寄放站点html文件的目次。
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    #设置/目次的指令。详细地声名:
    Option:界说在目次内所能执行的操纵。
    None:显露只能阅读,
    FollowSymLinks:许可页面毗连到别处,
    ExecCGI:许可执行CGI,
    MultiViews:许可看动画或是听音乐之类的操纵,
    Indexes:许可效力器前往目次的款式化列表,
    Includes:许可运用SSI。这些设置可以复选。
    All:则可以做任何事,但不包罗MultiViews。
    AllowOverride:加None参数显露任何人都可以阅读该目次下的文件。
    其它的参数有:FileInfo、AuthConfig、Limit。




    版权声明: 原创作品,许可转载,转载时请务必以超链接方法标明文章 原始出处 、作者信息和本声明。不然将追查法律责任。

  • 相关阅读:
    Java 抽象类
    Java 多态
    Java 重写与重载
    Java继承
    声卡驱动
    Sublime Text 3快捷键
    近年来世界各地ICO的花式骗局盘点
    区块链未能大爆发的影响因素有哪些?
    BCH分叉是一次站队博弈
    一文读懂百倍币的诞生背景
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1976229.html
Copyright © 2011-2022 走看看