Linux 版 (精华区)
发信人: don (回去睡觉了), 信区: Linux
标 题: 《 使用 Apache 架设 WWW 服务器 》
发信站: 哈工大紫丁香 (2000年10月01日13:46:10 星期天), 站内信件
当前位置:CPCW电子版 > 2000 年 > 25期 > OA专刊> 使用 Apache 架设 WWW 服
务器
《 使用 Apache 架设 WWW 服务器 》
随着Linux的汉化程度不断提高,相信国内有不少电脑爱好者都想感受一下这
个稳定且功能强大的操作系统,但它的各种复杂配置却让不少用户望而却步。不少
装有Linux的朋友最终还得跑到Windows 98里去调试CGI、PHP等需要服务器支持的
程序,完全浪费了Linux强大的服务器功能。下面我就介绍一下如何使用Apache在
Linux上架设WWW服务器。
一、安装Apache
要使用Apache,就要在安装Linux时选择安装Web Server,并在启动服务(
Internet Server)中开启httpd这一服务,这样系统就会自动安装好Apache,并在
系统第一次启动时启动httpd进程。如果你已经完成了Linux的安装,却没有装
Web Server,那也没关系,你可以重新安装Linux并选择UPDATE,挑选名为Apache
的软件包安装到本机。当然,如果你想安装最新版本,还可以到http://www.
apache.org/ 网站上去下载。
二、设置WWW配置文件
WWW服务器的配置文件共有httpd.conf、srm.conf、access.conf三个文件(有
些Linux并没有这三个文件,而是httpd.conf-dist、srm.conf-dist、access.
conf-dist,其实你只要将它们去掉-dist复制成我们所需要的文件就行了),都
存放在 /etc/httpd/conf 路径下。要重新设置这些文件,我们就必须先了解它们
的内容和主要参数的意义。
首先,我要介绍一下 # 的用法。# 在配置文件中处于一行的开头,表示该
行为注释,不参与执行。如果你希望使用某个被注释掉的参数,就必须将其行首的
# 去掉。了解了这一点,我们再来看看这三个配置文件:
1.httpd.conf
httpd.conf(图1)可以说是这三个设置文件中最为重要的,因为它定义了
httpd服务器的一般属性、端口号(port)、执行者的身份等,因此我将做较为详
细的介绍。编辑 httpd.conf,你会发现有以下一些参数:
ServerType:有standalone 和inetd两个值可供选择。这是要你选择你的
Server是单独启动(standalone),还是借由互联网络伺服程序inetd来启动。一
般我们默认使用单独启动就行了。如果你对 ARPA Berkeley Services 不是很了解
的话,请不要随意更改。
Port:分配给你的服务器的端口号。ServerType为standalone时一般都设成
80。当然,如果你需要也可以设置成其它的port,但必须小于1024。倘若你分配了
一个大于1024的端口号给Web Server,你就必须在你的URL后面跟上端口号才能访
问到你的页面。比如你分配给你的服务器的端口号是8080,那么你访问时需要输入
http://yourdomain:8080。
ServerAdmin:服务器管理员的E-mail 地址,默认的是root@localhost,你
可以改为你自己的E-mail地址。 ServerRoot:存放服务器的设置文件、出错
文件和记录文件的目录。
BindAddress:允许连接到你的服务器上的虚拟主机的IP地址。你可以设置为
一个IP地址或用 * 来表示网络上的所有虚拟主机。
ErrorLog:存放服务器出错信息的文件。
TransferLog:用来存放已传输过的文件(只包含文件名)的记录文件。
PidFile:指定存放httpd进程号的文件。
ScoreBoardFile :记录进程信息的文件。
ServerName:定义服务器的hostname,比如www.computer.swnu.edu.cn 。如果
你的机子没有固定的IP,那就不用写了。
Timeout:传输或接收的延时。大于这个时间服务器会自动断开链接。
KeepAlive:是否让你的服务器支持断点续传功能,可以选 on 或者 off。
MaxKeepAliveRequests:设置续传功能的数目。内置设成最多100,如果设成
0就是不支持续传功能。当然,数目设得越多就会浪费更多的硬盘空间。
KeepAliveTimeout:等待下一个请求的时间,如果使用者超过这个时间还没有
向你的服务器发出要求,则它就不能再续传了。同样的,秒数设得越大硬盘中的垃
圾就会越多。
MaxClients:允许的最大客户个数,默认的是150。你不必担心设得过高会浪
费CPU、内存资源,因为Apache会周期性地检查目前Server的load状态,以调整目
前应该运行几个process。 2.srm.conf srm.conf(图2)主要是用来指定你
的文档的位置。
DocumentRoot:指定你(root)存放HTML文件的路径,一般用默认值就行了。
比如,你设置的DocumentRoot是/home/httpd/html,服务器的地址是202.98.32.
96,则在URL中输入http://202.202.98.96所看到的文件就是/home/httpd/html中
的index.html。
UserDir:定义使用者存放html文件的路径。如果你有一个用户的主目录为
/home/wjq ,当在URL中输入http://yourdomain/~wjq时,系统就会到
/home/wjq/X/中去取这个用户的个人主页。其中X为UserDir所指定的目录。
DirectoryIndex:用来定义别人连入时所看到的第一个文件,一般都为
index.html。 ScriptAlias:定义存放CGI的路径。比如你设置为
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/,那么当有人连到你的页面时,
服务器就到/home/httpd/cgi-bin/路径下去找寻CGI然后执行,而其显示的路径却
是Alias的路径/cgi-bin/。 AddHandler:用来定义CGI的格式,约定俗成以
.cgi 结尾的文件为CGI文件。
如果你想运行更多格式的HTML文件,那就可以按需要把下面几个参数前的#去
掉。
AddType text/html .shtml AddHandler Server-parsed.shtml:允许使用
Server-parsed HTML格式的文件的文件(.shtml)。
AddHandler imap-file map:允许页面有imagemap。
AddHandler type-map var:允许运行 map 格式的html语法。
剩下的都是一些小细节,不改也无妨。
3.access.conf
access.conf(图3)主要是设置目录的基本存取权限,以及规范远端机器是否能
连接到你的WWW服务器的相关设置。下面我们先来看看此文件的其中一段非注释部
分:
<Directory/home/httpd/html>
Options Indexes IncludesNOEXEC FollowSymLinks AllowOverride None
order allow,deny allow from all
<Directory/home/httpd/html>
这部分是以开头,以结束的。其中开头的部分<Directory/home/httpd/html>
表示下面的设定是针对/home/httpd/html目录的。Options 用于定义在
DocumentRoot里的文件所能执行的操作,这一命令有很多的参数,各参数的功能如
下:
None:表示页面除了看之外不能做任何事。
All:允许进行除看动画、听音乐之外的任何操作。
ExecCGI:开启执行CGI程序的功能。
explicitly:允许看动画或是听音乐之类的操作。
FollowSymLinks:开启一个动态的链接,当有客户访问到该目录时会自动的链
接到另一个相关的目录中去。
Indexes:如果在目录中没有找到index.html文件,就显示文件列表。
而后是AllowOverride参数,该参数是设定访问控制的,其后可跟Allow、
None、FileInfo、AuthConfig、Limit等选项,不过一般都设为 None ,表示任何
人都可以阅读DocumentRoot内的文件。 order allow,deny 就是定义有allow
(允许)和deny(不允许)两种命令模式,其后的allow from all表示允许网络上
的所有计算机连接到这台服务器。同样的,你也可以做以下定义: order
allow,deny deny from all allow from 202.98.32.96 这就表示只
有202.98.32.96的计算机允许连接到你的服务器。
以此类推,我们还可以对其它目录进行设置。下面给出的就是对
/home/httpd/cgi-bin 目录进行设置的范例:
<Directory/home/httpd/html>
AllowOverride None
Options ExecCGI
</Directory>
它表示不能对/home/httpd/cgi-bin 进行访问控制,但允许执行CGI程序,这
就表明这是一个用来存放CGI程序的目录。
通常,这三个配置文件的参数的默认值是不用更改的,但是如果你同时在一台
机子上开了几个Web Server时就要注意:你必须给每一个Web Server分配一个不同
的port号并分别指定他们的errorlog文件和pidfile文件。
至此,我们已经配置完了Apache服务器,接下来就是要重新启动httpd了。
三、重新启动httpd,完成服务器的配置
进入Linux终端模式,执行/etc/rc.d/init.d/httpd stop终止httpd 进程,当
然你也可以通过查看其pid号码将其kill;然后执行/etc/rc.d/init.d/httpd
start重新启动刚才配置好的httpd,再进入X windows并启动Netscape,在URL中输
入localhost或本机的IP地址,如果没有什么意外你应该看到一个关于Apache的页
面。这时,你可以将自己的主页拷贝到/home/httpd/html/目录中,别人就可以通
过浏览器访问到你的主页了。
这样,一个功能强大的服务器就算架设完成了。
(文/常安)
页 首
CPCW版权所有,CPCW网站编辑部设计制作发布
--
一条驿路,一种氛围。
一朵梨花,一种思考。
希望能在Linux这条驿路上与你同行!
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: PR-AI.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.662毫秒