📄 00000011.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: ruster (尘埃*星辰*领悟), 信区: Linux <BR>标 题: 第六章 Intranet(下) <BR>发信站: BBS 水木清华站 (Thu Dec 21 13:43:29 2000) <BR> <BR> <BR>6.3 WWW服务器 <BR> <BR> 现在要开始我们的重点内容了:www server。目前能做www server的程序很多,在UN <BR>IX下较常见的免费服务器就有很多种,例如NSCA,Apache等等。我们讨论的将是世界上 <BR>最常用的一种,即Apache Server。 <BR> <BR> 6.3.1 Apache服务器 <BR> <BR> 按照apache开发组的说法,Apache代表“A patched Server”,因为它是在更古老的 <BR>一些服务程序上通过一连串的补丁开发出来的。除非你买的是sun那样的系统,否则几乎 <BR>每个UNIX发行商都可以免费提供apache的源代码或者是可以安装的软件包。几乎所有的 <BR>Linux发行版本都会附带apache的软件包或者源代码,当然你也可以到任何能够提供UNI <BR>X系统应用的ftp站点去下载这个东西,所以我不想告诉你如何去下载它的代码了。 <BR> <BR> 可以取得的apache软件包可以是目标代码形式或者源代码方式,我们这里假定你用的 <BR>是rpm包,例如redhat或者turbo Linux附带的apache rpm包。以下说明的内容将适用于 <BR>这种rpm的缺省设置,特别是缺省目录设置,在后面我们将解释apache的编译,在那里我 <BR>们将讨论目录设置和模块设置等功能。 <BR> <BR> Apache的缺省配置文件放在/etc/httpd/conf下面,在较早的版本中,配置被分成几个 <BR>文件,如/etc/httpd/conf/httpd.conf,/etc/httpd/conf/srm.conf和/etc/httpd/con <BR>f/access.conf。在较新的apache版本中,建议你只使用一个配置文件,即/etc/httpd/ <BR>conf/httpd.conf。我们将主要的讨论比较新的这种配置方式。我的版本是apache-1.3. <BR>9。特别需要注意的是,如果你的系统配置目录中除了httpd.conf之外还有srm.conf和a <BR>ccess.conf的话,那么系统缺省要去察看这两个文件。因此,建议你将这两个文件从系 <BR>统上删除。 <BR> <BR> /etc/httpd/conf/httpd.conf文件相当长,我们首先介绍基本的内容,在设置apache <BR>的工作中,第一个任务是设置html文档的位置。 <BR> <BR> 新的httpd.conf一般被分成几个段落,第一部分是全局变量的位置,按照我们习惯的 <BR>方式,将在缺省的httpd.conf上进行必要的修改,下面列出一些我们比较感兴趣的选择 <BR>: <BR> <BR> ServerType <BR> <BR> 这个选项用来设置你的apache如何启动,它有两个选择,即standalone和inetd。sta <BR>ndalone表示你的服务器程序是直接作为服务器守护进程启动,而inetd表示apache服务 <BR>器将在inetd程序中启动。一般我们总是建议用standalone方式,因为inetd在请求较多 <BR>的时候会出现一些问题。即使用ServerType standalone子句。 <BR> <BR> ServerRoot "/home/httpd" <BR> <BR> 设置Apache的缺声运行路径。不过,除非你在某些配置选项中使用相对路径,否则它 <BR>从来不会影响什么。 <BR> <BR> ErrorLog <BR> <BR> CustomLog <BR> <BR> <BR> 这两行设置缺省的记账文件的位置,errorlog和customlog分别是出错信息和正常工作 <BR>信息的记录地点,例如 <BR> <BR> ErrorLog /var/log/httpd/error_log <BR> <BR> CustomLog /var/log/httpd/access_log common <BR> <BR> Port <BR> <BR> 这个参数指明http服务器使用的端口,缺省值是80,当然你也可以选择其他的端口, <BR>但是这意味着你在连接的时候必须明确地指出使用的端口。 <BR> <BR> 范例: <BR> <BR> Port 80 <BR> <BR> User <BR> <BR> Group <BR> <BR> 设置服务器运行时使用的身份,通常我们为了安全,总是要把它设置成nobody,如: <BR> <BR> User nobody <BR> <BR> Group nobody <BR> <BR> ServerAdmin <BR> <BR> 这个选项用来设置当服务器出现问题时,用来反馈问题的邮件地址,例如 <BR> <BR> ServerAdmin <A HREF="mailto:webmaster@mydomain.com">webmaster@mydomain.com</A> <BR> <BR> <BR> ServerName <BR> <BR> 通常apache服务器会从域名服务信息中得到服务器的域名,但是你也可以使用这个选 <BR>项来避免域名服务器出错时apache失效。例如 <BR> <BR> ServerName www.mydomain.com <BR> <BR> DocumentRoot <BR> <BR> 这个选项设置缺省的服务器使用的html文件的位置,例如:下面的一行 <BR> <BR> DocumentRoot "/home/httpd/html" <BR> <BR> 意味着 <A HREF="http://www.mydomain.com/xxx.html">http://www.mydomain.com/xxx.html</A> 被解释为/home/httpd/html/xxx.html。 <BR> <BR> ScriptAlias <BR> <BR> 定义CGI脚本目录,例如 <BR> <BR> ScriptAlias /cgi-bin/ “/home/httpd/cgi-bin” <BR> <BR> 定义CGI脚本应该放在/home/httpd/cgi-bin/目录下,而反映在浏览器中的目录是/cg <BR>i-bin/。 <BR> <BR> DirectoryIndex <BR> <BR> 这个选项定义缺省的主页文件,例如,DirectoryIndex index.html意味着<A HREF="http://ww">http://ww</A> <BR>w.mydomain.com/将显示/home/httpd/html/index.html。 <BR> <BR> index.html <BR> <BR> Alias <BR> <BR> 建立目录别名,例如 <BR> <BR> Alias /ftp/ “/home/httpd/html/ftp/” <BR> <BR> UserDir <BR> <BR> 用宿主目录作为html目录。参考6.3.2节。 <BR> <BR> AccessFileName <BR> <BR> 定义身份控制的文件名,通常总是设置成为AccessFileName .htaccess <BR> <BR> AddType <BR> <BR> AddHandler <BR> <BR> 这两个选项用来加入各种文件映射,或者说MIME类型。通常AddType设定某种特定的文 <BR>件类型对应某个特定的扩展名字,而AddHandler则为这种类型定义一个处理程序。例如 <BR>,AddHandler cgi-script .cgi表示无论在什么地方,凡是看上去是一个.cgi的扩展名 <BR>的程序就作为CGI脚本执行(应该避免,对吗?不过对于那些~user的目录你可能只能用 <BR>这个办法了。好在还有一个options ExecCGI也对可以执行cgi的目录进行限制) <BR> <BR> 另外的一个常用的设定是 <BR> <BR> AddType text/html .shtml <BR> <BR> AddHandler server-parsed .shtml <BR> <BR> 这两行允许服务器处理那些.shtml并且将它翻译成html送出。 <BR> <BR> 显然,我们现在的任务主要是修改DocumentRoot和ScriptAlias,DirectoryIndex,写 <BR>一个简单的html文件,放到缺省的主页目录里,例如/home/httpd/html/index.html,设 <BR>置其属性为755,然后就可以启动apache了: <BR> <BR> /usr/sbin/apachectl start <BR> <BR> 或者 <BR> <BR> /usr/sbin/httpd <BR> <BR> 如果是重新启动apache,执行/usr/sbin/apachectl restart或者killall –HUP ht <BR>tpd。然后在浏览器中就可以实验页面服务是否可以使用了。如果apache抱怨找不到htt <BR>pd.conf,可以执行 <BR> <BR> httpd –f /etc/httpd/httpd.conf <BR> <BR> <BR> 6.3.1 目录管理 <BR> <BR> 如同其他所有的网络服务一样,Apache同样使用各种安全性控制,例如存取地址控制 <BR>和身份控制。这里我们先讲地址和目录控制。 <BR> <BR> Apache将目录作为单元来进行存取控制,每个目录在/etc/httpd/conf/httpd.conf中 <BR>使用一个段落,首先的是/目录,这实际是设置缺省值: <BR> <BR> <Directory /> <BR> <BR> Options FollowSymLinks <BR> <BR> AllowOverride None <BR> <BR> </Directory> <BR> <BR> 每个段落都是由这样的两组尖括号构成的行夹起来的,其中最主要的句子是Options, <BR>AllowOverride,Allow/Deny,Order等。 <BR> <BR> Options <BR> <BR> 这个子句用来说明一些主要的设置,目前可以使用的设置有Indexes,Includes,Fol <BR>lowSymLinks,ExecCGI,MultiView,当然还有两个最简单的选择就是None和All。None <BR>是禁止所有选择,而All允许上面的所有Options。一般我们主要关心的是Indexes和Fol <BR>lowSymLinks。Indexes是设定是否允许在目录下面没有index.html的时候显示目录,而 <BR>FollowSymLinks决定是否可以通过符号连接跨越DocumentRoot。例如,尽管/ftp不在/h <BR>ome/httpd/html下面,但是我们仍然可以使用符号连接建立一个/home/httpd/html/ftp <BR>使得可以直接输入<A HREF="http://mydomain.com/ftp来访问这个目录。">http://mydomain.com/ftp来访问这个目录。</A> <BR> <BR> 使用FollowSymLinks的办法很简单,就是首先在合适的目录段落里面Options Follow <BR>SymLinks,(符号连接的上层就可以)然后建立一个别名: <BR> <BR> Alias /ftp/ “home/httpd/html/ftp/” <BR> <BR> 后面的是你建立的到/ftp的符号连接。注意这一行应该位于所有目录段落之外。 <BR> <BR> AllowOverride <BR> <BR> AllowOverride定义是否允许各个目录用目录中的.htaccess(后面解释)覆盖这里设定 <BR>的Options。它的选择有Options,FileInfo,AuthConfig,Limit或者它们的组合,当然 <BR>还有None和All。 <BR> <BR> 由于/是缺省设置,所以这里没有设置太多的内容,相反,我们应该在/之后独立设置 <BR>各个目录的控制,例如: <BR> <BR> <Directory "/home/httpd/html"> <BR> <BR> Options Indexes FollowSymLinks <BR> <BR> AllowOverride None <BR> <BR> Order allow,deny <BR> <BR> Allow from all <BR> <BR> </Directory> <BR> <BR> 出现了两个新的选项:Order和Allow。 <BR> <BR> Order <BR> <BR> 它有两种用法,即Order allow,deny或者Order deny,allow。简单地说,它用来设置 <BR>是先执行deny还是先执行allow,例如,Order deny,allow意味着先看deny行,再看all <BR>ow行,这样如果deny from all再allow from 202.112.58.0/24后来的allow子句就会超 <BR>越deny而对202.112.58.x打开访问。 <BR> <BR> Allow/Deny from <BR> <BR> 这两个选项和Order一起使用,Allow允许某个地址来的连接请求,Deny则禁止这个请 <BR>求,例如在Order deny,allow的情况下,Deny from all,Allow from 192.168.12.0/ <BR>24表示只有192.168.12.x的用户可以访问这个目录。 <BR> <BR> <BR> 现在我们来看看下面的一个设定: <BR> <BR> UserDir public_html <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -