1.实验目的
通过对Apache Web服务器系统的安装与配置实验,加深对 HTTP协议、HTML语言的理解,掌握Apache服务器的安装与配置方法,为将来从事网络工程建设打下基础。
2.实验要求
下载Apache WEB服务器源代码,在Linux 环境下,编译生成执行代码,并进行安装和基本配置,然后设计一个用于测试的网页,分别在本机和网络中其它计算机上访问该测试网页,测试Apache Web服务器系统工作是否正常。
3.实验步骤 3.1 实验准备
1、系统要求 系统配置
建议CPU 为PIII 900MHZ以上, 内存128MB以上,磁盘可用空间100MB以上, 具有10M/100M网卡,操作系统采用 Red Hat 6.0 版本或更高版本。 编译器环境
系统必须装有ANSI-C编译器,推荐使用来自Free Software Foundation (FSF)的GNU C compiler (GCC)。
2、下载源代码
Apache最新版本的源代码可以从Apache Software Foundation网站上: http://httpd.apache.org/download.cgi或其镜像站点下载, 本书附带的光盘上包括了 httpd -2.0.49版本的原代码。
3、源代码解包
将下载的安装包httpd-2.0.49.tar.gz复制到某一个用户目录下(下面以/usr/src/目录为例介绍),然后用以下命令解压:
$ cd /usr/src
$ tar xvfz httpd-2.0.49.tar.gz
将会在/usr/src/目录下创建/http-2.0.49子目录,该目录下包含apache的所有的源代码和相关文档。
3.2编译设置
Apache是一个由多模块组成的安装包,其功能可以根据不同的应用需求进行裁剪,另外,Apache 还可以在不同的操作系统环境下安装,由于不同的操作系统其编译库可能不完全相同,所以必须设置好当前操作系统下编译参数,此外,还需要设置好Apache系统的安装目录,这些工作可以通过/httpd-2.0.49目录下的configure脚本来进行裁剪和检测,并形成下一步编译的Makefile文件。 执行./configure –-help可显示Apache可以设置的参数或裁剪的模块及其简要说明:
$ cd httpd-2.0.49 $./configure –-help
除了以下几个参数可能需要更改外,一般情况下,使用系统默认的设置就可以了。
安装路径名
Apache 默认的安装路径名为/usr/local/apache,如果需要,你可以通过—prefix参数指定一个其他安装目录(如/usr/other/Web):
--prefix=/usr/other/Web
功能模块
基本服务器安装包中包含了最常用的功能模块,如果要安装某扩展功能模块,则需要在编译时指定包含之,同样,对于某个基本功能模块(在Apache文档中有模块清单备查,其中状态为\"Base\"的为基本模块),如果不需要安装,则必须明确地禁用它:
编译并包含模块MODULE:
--enable-MODULE
编译并包含用空格分隔的多个模块MODULE-LIST:
--enable-modules=MODULE-LIST 禁止编译并包含模块MODULE:
--disable-MODULE
编译并包含用空格分隔的MODULE-LIST成动态库DSO:
--enable-mods-shared=MODULE-LIST
一般情况下使用默认的模块设置就可以了,下面的命令将配置基本的安装模块并告诉编译器将Apache 安装在/usr/local/apache目录下:
$ cd /usr/src/httpd-2.0.49
$./configure --prefix=/usr/local/apache
3.3编译
根据./configure配置的模块和检测到编译参数(保存在Makefile中)执行以下命令就可以对Apache源代码进行编译:
$ cd /usr/src/httpd-2.0.49 $ make
对一个具有基本配置的Apache进行编译,在Pentium III机器上需要运行3
分钟左右,实际需要的时间因你的硬件和选择的模块数量会有很大不同。
正常情况下,编译能顺利完成,但如果操作系统或C语言编译器有问题,则可能终止编译过程,此时需要根据报告的错误进行相应的处理。
3.4安装
如果编译正常完成,就可以将Apache安装到上述—prefix指定的目录中(如/usr/local/apache),命令如下:
$ cd /usr/src/httpd-2.0.49 $ make install
安装完成后,可以清除编译生成的中间文件(.o),以释放磁盘空间: $ cd /usr/src/httpd-2.0.49 $ make clean
注意:如果由于某种原因,需要重新./configure 和编译时,一定要make clean清除上次编译生成的中间文件,否则编译器不会重新编译已有的文件,导致重新编译无效。
3.5配置
Apache的运行配置文件放在/usr/local/apache/conf/httpd.conf中,通过编辑该文件控制Apache服务器运行,在/usr/local/apache/docs/manual/ 有Apache使用手册,在http://httpd.apache.org/docs/有完整的配置指令参考。
$ cd /usr/local/apache/conf $ vi httpd.conf
通常需要修改配置文件httpd.conf中以下几个参数:
1、修改服务器名称
指定HTTP服务器的域名和服务端口: ServerName www.test.com:80
如果已为你的服务器注册了域名www.test.com,则可以通过该名字在网络上访问WEB服务器,但如果你没有注册域名,则只能通过你的IP地址访问你的HTTP服务器。
在注册域名前,为了能在本机上通过域名www.test.com访问该Web服务器,可以在本机的/etc/hosts 文件尾部增加一项本地域名与IP地址对应表,以便在本机上测试访问www.test.com服务器(假设HTTP服务所在的机器IP地址为192.168.25.188):
192.168.25.188 www.test.com
2、 修改服务端口
缺省情况下,http服务的socket 服务端口为80,你可以修改之: Listen 80
3、 修改文档目录
你的网页默认情况下是放在安装目录下的htdocs中(如:/usr/local/apache/htdocs),你可以在此修改之: DocumentRoot /usr/local/apache/htdocs
4、 修改出错信息、日志目录
HTTP服务器出错信息和访问日志默认时是放在安装目录中的logs/error_log和access_log中,你可以在此修改之:
ErrorLog logs/error_log
日志的级别有debug/info/notice/warn/error/crit/alert/emerg,可以修改日志的级别:
LogLevel warn
你可以指定记录客户访问本服务器的日志目录和格式,将来可以用以分析服务器被访问的情况:
CustomLog logs/access_log common
5、 修改支持的语言和编码 指定网页默认的语言:
DefaultLanguage zh-CN
指定网页支持的语言和优先级别:
AddLanguage zh-CN .zh-cn AddLanguage en .en
LanguagePriority zh-CN en
指定网页默认的字符集和支持的字符集:
AddDefaultCharset GB2312
AddCharset GB2312 .gb2312 .gb
3.6运行与停止
可以执行以下命令手工启动你的Apache HTTP服务器: $ cd /usr/local/apache/bin $ ./apachectl start
可以通过以下命令来检查HTTP服务器进程(缺省时有5个,可配置): $ ps –A|grep httpd
HTTP服务启动和运行时根据前面设置的参数写日志文件,你可以这样来动态观察Apache的启动与运行过程日志信息和出错信息:
tail -f /usr/local/apache/logs/access_log tail -f /usr/local/apache/logs/error_log
如果HTTP服务器进程已运行,则你可以在本机上用http://localhost/或http:/127.0.0.1/来访问你的测试网页了,这个网页位于
/usr/local/apache/htdocs/。
如果在其他机器上需要访问该服务器,则必须输入http://192.168.25.188 才能访问。
注意,必须修改HTTP服务器上防火墙系统的设置(进入应用程序/系统设置/安全级别的设置界面),允许信任HTTP服务,否则无法访问该HTTP服务。
最后。你可以停止HTTP服务器: $ cd /usr/local/apache/bin $ ./apachectl stop
还可以编辑启动文件apache,并将该文件放到 /etc/rc.d/rc.local/init.d/目录下,系统开机时自动启动Web服务器。
4、实验评测
按照上述步骤安装并配置Apache服务器,然后启动Apache Web服务后,并进行以下测试,以判断Web服务是否正常:
(1) 在服务器上测试
在服务器上启动浏览器,输入http://localhost/ 或 http://192.168.25.188 或 http://www.test.com,能看到 Apache 默认的测试网页(中文)。
如果看不到或显示的页面不是上图内容,则说明配置有问题。
自己设计一个测试网页,替代系统原来的网页,重复上述测试,如果能看到你设计的测试内容,则说明Web服务器工作正常。
(2)在局域网内测试
在局域网另外一台计算机上启动浏览器,输入http://192.168.25.188,如果能看到你设计的测试内容,则说明Web服务器工作正常。
在一台Linux机器上/etc/hosts 文件尾部增加一项域名与IP地址对应表,以便能通过域名访问www.test.com服务器:
192.168.25.188 www.test.com
然后在浏览器中输入http://www.test.com,应同样能看到你设计的测试内容。
因篇幅问题不能全部显示,请点此查看更多更全内容