2024年5月30日发(作者:)

Linux实践及应用(论文)

摘 要:

本文详细的讲解了在Linux 环境下安装Web 服务器的方法,包括Apache 服务器软件

的安装和配置,以及实现虚拟主机服务的配置,权限的设置方法等内容

关键词:

Linux;Web 服务器;Apache;虚拟主机

前言:

W W W(W o r l d W i d e W e b )服务是Internet上最热门的服务之一,通过它用

户可以获得没有时间、地域的限制的各种信息服务,如浏览、搜索和共享信息,商业应用和

服务宣传等。现在,每天都有数以百万计的人访问Internet上的信息页,每天又有数以千计

的Web服务器被建立起来。个人或公司企业等如果想通过主页向世界介绍自己,就必须将主页

放在一个WEB 服务器上,个人用户完全可以使用一些免费的主页空间来发布,但对于多数公

司和企业用户来说,都想得到高速而安全的服务,那么就要将主页存放在自己的WEB 服务器

上,通过它把主页向外发布。当然,在这之前,要先注册一个域名,申请一个IP 地址,然后

让ISP 将这个IP 地址解析到自己的主机上,最后要在主机上架设W E B 服务器。

1、Apache服务器简介

首先是服务器的操作系统的选择,目前主要有Windows 和Unix/Linux 两大阵营,当然二

者都有各自的优点和特点,本文选择的是Fedora Linux 平台。在Linux 系统中,我们常用的

单独的Web 服务器主要有三种:

(一)CERN httpd:这是最早期的Web 服务器软件。

(二)NCSA httpd:这是美国国家超级计算机应用中心(NCSA)在1995 年创建的WWW服务器。

C 语言开发,程序小、速度快,但已经不再升级了。

(三)Apache:据说全世界50% 以上的Web服务器都是用Apache。它是在NCSA 的基础上开发

出来的,并一直高速发展着。Apache 的主要特征是:

·可以在任何计算机平台上运行。

·简单而强有力的基于文件的配置。

·支持虚拟主机。

·支持H T T P 认证。

·集成的代理服务器。

·支持安全Socket 层(SSL)。

·支持Java Servlets 和JSP。

目前在Fedora Linux 中已经集成了Apache,它们二者配合使用不仅效果非常好,而且最大的

优点是免费,下面介绍的是Fedora Linux + Apache 的组合。

1、 Apache服务器的安装

在初始化Linux安装的时候,Linux发布通常会允许用户选择是否安装Apache Web服务器

这样,所有必须的目录和配置文件都会自动生成。在配置Apache之前,使用命令 rpm –qa | grep

httpd 检查系统是否安装了Apache。如果没有安装则通过以下两种方式安装。

(一)通过R P M 包来安装首先要在或其它网站下载apache_

(也许这不是目前的最新版本),然后使用命令安装:rpm –ivh apache_。

(二)用源代码编译安装首先下载apache_文件,先解压缩然后编译安装,

tar –zxvf apache_

cd apache_2.2.14

make

make install

安装完成了之后,在浏览器中输入本机的ip地址,若看到了测试页面,则安装成功。

3、Apache服务器的配置

第1页 共5页

Linux实践及应用(论文)

在Fedora Linux 中,Apache 将自己的所有配置文件和日志文件放在了“/etc/httpd”

目录下,其中“/etc/httpd/conf”下为配置文件,“/etc/httpd/log”下为日志文件。Apache

的配置文件主要有:“”:用于设置系统中的存取方式和环境;“”

用于设置服务器启动的基本环境;“”:主要用于做文件资源上的设定;“”:

记录Apache 服务器所能识别的MIME格式。其实,LINUX 系统已经在安装时就采用了一系列的

缺省值,我们可以根据自己的实际情况做一些细微的调整,以更加适合于具体应用。

(一)的配置

当我们使用“vi”来打开它的时候,我们会发现内容十分繁多,看得人头晕眼花的。请

大家一定要明确,凡是最前面是以“# ”号开头的,表示这一行是注释语句,而不是配置文

件本身。所以我们把这些注释语句略去不说。

1.该文件的第一段非注释部分如下:

Option Indexes Includes ExecCGI

FollowSymLink

AllowOverride None

Order allow , deny

allow from all

这个部分是以开始,以结束的。这表示在其

中间的部分都是针对指定目录——“/home/ttpd/html”而言的。Option 命令有很多的参数,

各个参数的意义如下所示:

All:准许以下所有功能(MultiViews除外);

Indexes:若该目录下无index文件,则准许显示该目录下的文件以供选择;

Includes:准许SSI;

FollowSymLinks:准许符号链接到其他目录;

ExecCGI:准许该目录下可以使用CGI,而AllowOverride命令则是用来决定是否准许在

“”文件中设定的权限是否可以被在文件“.htaccess”中设定的权限覆盖。它

有两个参数:All 准许覆盖;None 不准许覆盖。

Order 命令:用来设定谁能从这个服务器取得控制。它也有两个参数:allow 可以取得控

制;deny 禁止取得控制。这段配置的含义是:对于目录“/ h o m e /httpd/html”来说,

当不存在 文件时,列出目录信息以供选择,准许SSI,允许执行CGI 程序,开启了

动态连接。它不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。使所有的

人都可以取得控制。

2.该文件的第二段非注释部分如下:

Option ExecCGI

AllowOverride None

这个内容表示:在目录“/var/www/cgi”下可以执行CGI 程序。不允许再使用在文

件“.htaccess”中设定来覆盖这里所设置的权限。

(二) 的配置

这个文件中有许多设定命令,用来设置服务器的运行环境。以下是一些常用的部分:

1. ServerType命令,用来设定服务器的启动方式。它的命令格式如下:命令格式: ServerType

[standalone/inted]standalone 参数表示WEB 服务进程以一个单独的守候进程的方式在后

台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。inetd 参数表示Web服务

第2页 共5页

Linux实践及应用(论文)

不是以一个单独的守候进程的形式支持。而是由inetd这个超级服务器守候进程进行代劳,当

它收到一个客户端的W E B 服务请求的时候,再启动一个W E B 服务进程为其服务。在此建

议使用standalone 参数

2. Port 命令,为服务器的服务指定端口号。一般来说,Web 服务使用端口号是80。命

令格式: Port 端口号

Admin 命令,用来设置管理员的E-Mail 地址。

命令格式: Server Admin [you E-Mailaddress]

t命令,只要客户端超过这里设定的秒数还没有完成一个请求的话,服务端将终

止这次请求服务。如果网络速度较慢的话,建议在此设置较大的数值。以给客户端更多机会。

命令格式: Timeout [second]

ents 命令,用来设置接受客户端请求的最大数目,以使得维护系统稳定性,避免

系统负载过大。命令格式: MaxClients [number]

6.设置主服务器的名称,默认是 # ,此处我们可以输入一个合法的名字

即域名即可,也可以输入主机的ip地址,然后去掉前面的#号即可。

(三) 的配置

这个文件主要用来指定主页文档的位置。下面介绍三个最常用的命令。

1. DocumentRoot 命令,用来指定主文档的地址。

例:DocumentRoot /var/httpd/html

2. UserDir 命令,用来指定个人主页的位置。如果有一个用户test,那么它的主目录是

“/h o m e / t e s t ”,当客户端输入 h t t p : / /yourdomain/~test”,系统就会到

对应的目录“/h o m e / t e s t / U s e r D i r /”中去寻找。其中“UserDir”就是在

UserDir命令中设置的指定目录。例: UserDir Public_html

3. DirectoryIndex命令,用来设置首页文件名称。一般地,我们使用“”或

“”作为首页的文件名。例:DirecotryIndex 通过上面的介绍,我们可

以根据自己的实际情况来更改配置文件,使Apache 按照自己的要求正常工作,需要说明一下

的是,在更改配置之后需要重新启动Apache 来使新的配置生效,输入以下命令来实现:

/etc/rc.d/init.d/httpd restart最后,我们就可以把主页复制到配置文件中指定的目录中,

然后在工作站上打开浏览器,输入服务器IP地址/,看看是不是可以正常浏览了,

如果可以,说明一个基本的Web服务器已经建立起来了

(四)测试服务器是否正常运行

在命令行下输入 # service httpd tart

# service httpd stop

# service httpd start

在目录 var/www/html/下新建一个 文件,在浏览器中输入本机ip/。

如果能看到自己的网页,则表示服务器配置成功。

4、基于域名的虚拟主机配置

Apache 实现基于主机名的虚拟主机服务(一个IP 地址实现多个网站)例:如果服务器只有

一个IP 地址,而在DNS中有很多映射到这个机器,我们想要在这个机器上运行

和 两个站点。在Apache 服务器的配置中创建一个虚拟主机并不会自动在DNS中

对主机名做相应更新,我们必须自己在DNS 中添加域名来指向我们的IP地址,否则别人是无

法看到我们的Web 站点的。

NameVirtualHost 172.16.37.177

第3页 共5页

Linux实践及应用(论文)

ServerName :80

DocumentRoot /var/www/gy1

DirectoryIndex

ServerName :80

DocumentRoot /var/www/gy2

DirectoryIndex

NameVirtualHost IP指明该虚拟主机对应的IP 地址,

构成该虚拟主机的语法结构,其中的域名就是我们在服务器上上传的网页要解析的域名。配

置完成后需要配置DNS服务器进行域名解析,最后用户可以通过和

来访问上传到Apache服务器两个网站。

5、实验中遇到的问题和心得体会

在配置文件时,不知道ServiceName处填写什么名字,因为要求格式为类似网址

形式的域名,所有我在其中输入了 ServiceName :80,在测试时,浏览器却给

我连接到了国外一个域名购买商店。后来,我就在命令下输入 ifconfig 结果显示了两个 innet

ip ,我就见上述域名改成了 ServiceName 我的主机ip:80,结果测试时,都能显示我在

/var/www/html 目录下的主页。我不明白这两个ip和我的Apache服务器有什么关系。通过写论

文,使我更加了解了Linux和Apache的相关知识,也提高了我操作Linux系统的能力。

参考文献:

[1] 钟小平,张金石. 网络服务配置与应用[M] . 北京:人民邮电出版社,2002

[2] Michael Jang 《红帽Linux 9 从入门到精通》 电子工业出版社2003 年10 月 第659 至

695 页

[3] 罗文村,汤庸. Linux时间与应用. 北京:清华大学出版社,2006

第4页 共5页

第9页 共5页