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。




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

原文地址:https://www.cnblogs.com/zgqjymx/p/1976229.html