第3 篇 网络服务管理篇
第16 章 Web 服务器配置和管理
Web 服务是目前Internet 上最常见的服务之一,要搭建一个Web 服务器,首先要选择
一套合适的Web 程序。在本章中将会以强大的Apache 为例,介绍相关的安装、配置、维
护和高级功能等方面的知识,演示如何在Linux 操作系统下构建基于Apache 的Web 服
务器。
16.1 Web 服务器简介
万维网又称为Web(World Wide Web,www),是在Internet 上以超文本为基础形成
的信息网。用户通过浏览器可以访问Web 服务器上的信息资源,目前在Linux 操作系统上
最常用的Web 服务器软件是Apache。本节将简单介绍Web 服务器的历史以及工作原理,
并介绍Apache 的特点以及它的功能模块。
16.1.1 Web 服务的历史和工作原理
Internet 上最热门的服务之一就是万维网,它是在因特网上以超文本为基础形成的信息
网。用户通过它可以查阅Internet 上的信息资源,例如,平时上网使用浏览器访问网站信
息就是最常见的应用。
Web 在1989 年起源于欧洲的一个国际核能研究院中,由于随着研究的深入和发展,
研究院里的文件数量越来越多,而且人员流动也很大,要找到相关的最新的资料非常困难。
于是一个科学家就提出了这样一个建议:在服务器上维护一个目录,目录的链接指向每个
人的文件;每个人维护自己的文件,保证别人访问的时候总是最新的文档,这个建议得到
采纳并被不断完善后,最终形成如今Internet 上最常见的WWW 服务。
Web 系统是客户/服务器模式(C/S)的,所以有服务器端和客户端程序两部分。常用
的服务器有Apache、IIS 等,常用的客户端浏览器有如IE、Netscape、Mozilla 等,用户在
浏览器的地址栏中输入统一资源定位地址(URL)来访问Web 页面。
Web 页面是以超文本标记语言(HTML)进行编写,它使得文本不再是传统的书页式
文本,而是可以在浏览过程中从一个页面位置跳转到另一个页面。使用HTML 语言编制的
Web 页面除文本信息外,还可以嵌入声音、图像、视频等多媒体信息。WWW 服务遵循
HTTP 协议,默认的端口为80,Web 客户端与Web 服务器的通信过程如图16.1 所示。
通信的过程分为以下3 步。
第16 章 Web 服务器配置和管理
(1)Web 客户端通过浏览器根据用户输入的URL 地址连接到相应的Web 服务器上。
(2)从Web 服务器上获得指定的Web 文档。
图16.1 Web 工作原理
(3)断开与远程的Web 服务器的连接。
用户每次浏览网站获取一个页面,都会重复上述的连接过程,周而复始。
16.1.2 Apache 简介
Apache 是一种开源的HTTP 服务器软件,可以在包括UNIX、Linux 以及Windows 在
内的大多数主流计算机操作系统中运行,由于其支持多平台和良好的安全性而被广泛使用。
Apache 由Illinois 大学Urbana-Champaign 的国家高级计算程序中心开发,它的名字取自
apatchy server 的读音,即充满补丁的服务器,可见在最初的时候该程序并不是非常完善。
但由于Apache 是开源软件,所以得到了开源社区的支持,不断开发出新的功能特性,
并修补了原来的缺陷。经过多年来不断的完善,如今的Apache 已是最流行的Web 服务器
端软件之一。Apache 拥有以下众多的特性,保证了它可以高效稳定地运行。
? 支持几乎所有的计算机平台。
? 简单有效的配置文件。
? 支持虚拟主机。
? 支持多种方式的HTTP 认证。
? 集成Perl 脚本语言。
? 集成代理服务器模块。
? 支持实时监视服务器状态和定制服务器日志。
? 支持服务器端包含指令(SSI)。
? 支持安全Socket 层(SSL)。
? 提供用户会话过程的跟踪。
? 支持PHP。
? 支持FastCGI。
? 支持Java Servlets。
? 支持通用网关接口。
? 支持第三方软件开发商提供的功能模块。
第3 篇 网络服务管理篇
·386·
16.1.3 Apache 的模块
Apache 采用模块化的设计,模块安装后就可以为Apache 内核增加相应的新功能。默
认情况下Apache 已经安装了部分的模块,用户也通过使用模块配置,自定义Apache 服务
器中需要安装哪些功能,这也是Apache 灵活性的表现。如表16.1 列出了Apache 全部的默
认模块和部分常用的非默认模块。
表16.1 Apache 模块列表
模 块 名 功 能 说 明 是否默认安装
mod_actions 运行基于MIME 类型的CGI 脚本 是
mod_alias 支持虚拟目录和页面重定向 是
mod_asis 发送包含自定义HTTP 头的文件 是
mod_auth_basic 基本验证 是
mod_auth_digest 使用MD5 加密算法的用户验证 否
mod_authn_alias 允许使用第三方验证 否
mod_authn_anon 允许匿名用户访问认证的区域 否
mod_authn_dbd 使用数据库保存用户验证信息 否
mod_authn_dbm 使用DBM 数据文件保存用户验证信息 否
mod_authn_default 处理用户验证失败 是
mod_authn_file 使用文本文件保存用户验证信息 是
mod_authnz_ldap 使用LDAP 目录进行用户验证 否
mod_authz_default 处理组验证失败 是
mod_authz_groupfile 使用plaintext 文件进行组验证 是
mod_authz_host 基于主机的组验证 是
mod_authz_user 用户验证模块 是
mod_autoindex 生成目录索引 是
mod_cache 通向URI 的内容Cache 否
mod_cgi 支持CGI 脚本 是
mod_cgid 使用外部CGI 进程运行CGI 脚本 是
mod_dir 提供用于trailing slash 的目录和索引文件 是
mod_env 调整传输给CGI 脚本和SSI 页面的环境变量 是
mod_example 解释Apache 模块的API 否
mod_filter 过滤信息 是
mod_imagemap imagemap 处理 是
mod_include 解析HTML 文件 是
mod_isapi ISAPI 扩展 是
mod_ldap 使用第三方LDAP 模块进行LDAP 连接和服务 否
mod_log_config 记录发给服务器的访问请求 是
mod_logio 记录每个请求输入、输出的字节数 否
mod_mime 联合被请求文件扩展名和文件行为的内容 是
mod_negotiation 提供内容协商 是
第16 章 Web 服务器配置和管理
·387·
mod_nw_ssl 为NetWare 打开SSL 加密 是
mod_proxy 支持HTTP1.1 协议的代理和网关服务器 否
mod_proxy_ajp mod_proxy 的AJP 支持模块 否
mod_proxy_balancer mod_proxy 的负载均衡模块 否
mod_proxy_ftp mod_proxy 的FTP 支持模块 否
mod_proxy_http mod_proxy 的HTTP 支持模块 否
mod_setenvif 允许设置基于请求的环境变量 是
mod_so 在启动或重启时提高可执行编码和模块的启动 否
续表
模 块 名 功 能 说 明 是否默认安装
mod_ssl 使用SSL 和TLS 的加密 否
mod_status 提供服务器性能运行信息 是
mod_userdir 设置每个用户的网站目录 是
mod_usertrack 记录用户在网站上的活动 否
mod_vhost_alias 提供大量虚拟主机的动态配置 否
关于Apache 模块的自定义安装和模块的使用将在后面的章节中陆续进行讲解。
16.2 Apache 服务器的安装
本节以 2.2.9 版本的 Apache 为例,介绍如何获得并通过源代码安装包在 Red Hat
Enterprise Linux 5.2 上安装Apache 服务器;如何启动关闭Apache 服务;如何检测Apache
服务的状态,以及配置Apache 服务的开机自动运行。
16.2.1 如何获取Apache 软件
Redhat Linux AS 5.2 自带了Apache,版本为2.2.3。用户只要在安装操作系统的时候把
http server 选项选中,Linux 安装程序将会自动完成Apache 的安装工作。如果在安装操作
系统时没有安装Apache,也可以通过安装光盘中的RPM 软件包进行安装,所需的RPM 软
件包如下所示。
httpd-2.2.3-11.el5_1.3.i386.rpm
httpd-manual-2.2.3-11.el5_1.3.i386.rpm 为了能获取最新版本的Apache,可以从Apache 官方网站 www.apache.org 下载该软件
的源代码安装包,包括gz 和bz2 两种压缩方式。截至本书定稿前,最新的Apache 版本为
2.2.9,下载页面如图16.2 所示。
第3 篇 网络服务管理篇
16.2 Apache 官方网站
下载后把httpd-2.2.9.tar.gz 文件保存到/tmp 目录下即可。
16.2.2 安装Apache 服务器
Apache 对系统的软件和硬件环境都有所要求,在安装前需要检查系统环境是否能满足
要求。检查完成后,先解压安装包文件,然后进行源代码的编译和安装。接下来将以Apache
2.2.9 的源代码安装包为例,详细介绍Apache 在Red Hat Enterprise Linux 5.2 上的完整安装
过程,如下所述。
(1)安装Apache 的硬件和软件配置要求。
? 确保磁盘至少有50MB 的空闲空间。
? 确保操作系统已经安装并正确配置了gcc。
(2)把httpd-2.2.9.tar.gz 文件解压,执行如下命令:
tar -xzvf httpd-2.2.9.tar.gz
文件将会被解压到httpd-2.2.9 目录下。
(3)进入httpd-2.2.9 目录,使用configure 命令配置安装参数,configure 命令的格式为:
configure [OPTION]... [VAR=VALUE]...
关于configure 命令的选项和参数说明可以通过下面命令获得。
./configure --help
这里只介绍几个常用的配置参数,如下所示。
? --prefix 参数:默认情况下Apache 会安装在/usr/local/apache2 目录下,该参数用于
自定义Apache 的安装目录。例如,要把Apache 安装到/usr/local/apache 目录下,
可以使用./configure –prefix=/usr/local/apache 配置命令。
第16 章 Web 服务器配置和管理
·389·
? --enable-modules 参数:用于指定除默认模块以外需要额外安装的Apache 模块,不
同的模块之间以空格分隔。关于Apache 常用模块的功能在16.1.3 节中已有详细说
明。例如,要安装 mod_proxy 和 mod_ssl 两个模块,可以使用./configure
--enable-modules="proxy ssl"配置命令。
? --enable-mods-shared 参数:与--enable-modules 参数一样,该参数同样用于指定需
要额外安装的 Apache 模块,参数格式也是一样。所不同的是,--enable-modules
参数指定安装的模块在Apache 运行的时候就会自动载入,而--enable-mods-shared
参数所指定的Apache 模块需要使用LoadModule 指令进行载入。
在这里只采用默认安装,所以直接运行./configure 即可,运行结果如图16.3 所示。
(4)编译并安装Apache,如下所示。
make
make install
运行结果分别如图16.4 和图16.5 所示。
图16.3 配置安装参数
第3 篇 网络服务管理篇
图16.4 编译Apache
图16.5 安装Apache
16.2.3 启动和关闭Apache
安装完成后就可以启动Apache 服务。Apache 的启动关闭都是通过<Apache 安装目录>
/bin 目录下的apachectl 命令进行管理的。启动Apache 服务,如下所示。
./apachectl start
关闭Apache 服务,如下所示。
./apachectl stop
重启Apache 服务,如下所示。
./apachectl restart
第16 章 Web 服务器配置和管理
安装Apache 后,在没有对httpd.conf 配置文件做任何修改之前启动Apache 服务会得
到一些警告信息,如图16.6 所示。
因为httpd.conf 配置文件中的ServerName 参数没有设置,但是这不会影响Apache 的
正常运行,关于httpd.conf 配置文件的修改会在16.3.2 和16.3.3 小节中进行讲解。
除此之外,在正常情况下启动Apache 服务是不会有任何警告或者错误信息输出的,
如果出现如图16.7 所示的错误信息,用户就应该检查一下是否有其他进程占用了80 端口。
图16.6 第一次启动的报警信息 图16.7 错误信息
16.2.4 检测Apache 服务
要检测Apache 服务是否正在运行,可以通过检查Apache 进程状态或者直接通过浏览
器访问Apache 发布的网站页面来确定。
1.检查Apache进程
可以通过以下命令检查Apache 进程的状态。
ps -ef | grep httpd 运行结果如图16.8 所示。Apache 运行后会在操作系统中创建多个httpd 进程,能在操
作系统中查找到httpd 进程,表示Apache 正在运行。
2.检查Apache页面
通过查看进程的方法只能确定Apache 是否正在运行,但要检查Apache 的运行是否正
常,最直接有效的方法就是通过浏览器查看Apache服务器发布的页面。默认安装后,Apache
网站的首页是一个测试页面,用户可以通过它来检查 Apache 是否运行正常,如图 16.9
所示。
第3 篇 网络服务管理篇
图16.8 查看Apache 进程
图16.9 Apache 测试页面
16.2.5 让Apache 自动运行
Red Hat Enterprise Linux 5.2 可以支持程序服务的开机自动运行,如果要配置Apache
服务在服务器启动的时候自动运行,可以编写启动和关闭Apache 服务的脚本,然后进行
相应的配置。具体步骤如下所述。
(1)编写启动和关闭Apache 服务的脚本,脚本文件名为httpd,并存放到/etc/rc.d/init.d
目录下。下面分几个部分对脚本的内容进行说明,用户只需要按顺序把这些代码添加到
httpd 文件中即可。设置Apache 服务与chikconfig 相关的选项,并执行初始化环境变量的
脚本,代码如下所示。
#!/bin/sh // 设置与chkconfig 相关的选项
#chkconfig :345 85 15 //设置启动级别以及启动顺序
#description:some words you like!! //描述信息
# Source function library.
. /etc/rc.d/init.d/functions //执行/etc/rc.d/init.d/functions 脚本
// 调用系统初始化脚本
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions //执行. /etc/init.d/functions 脚本
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions //执行. /etc/rc.d/init.d/functions 脚本
else
exit 0 //如果找不到上述脚本则结束本脚本的运行
fi
设置与启动关闭Apache 服务相关的选项,代码如下所示。
//获取命令输入的参数
ARGV="$@" //设置httpd 命令的路径
HTTPD='/usr/local/apache2/bin/httpd' //如果envvars 文件存在,则执行envvars 文件设置Apache 的环境变量
if test -f /usr/local/apache2/bin/envvars; then
. /usr/local/apache2/bin/envvars //执行/usr/local/apache2/bin/envvars
fi //设置命令行的HTML 格式
LYNX="links -dump" //设置mod_status 模块的状态页面的URL
第16 章 Web 服务器配置和管理
·393·
STATUSURL=" http://localhost:80/server-status
第16 章 Web 服务器配置和管理
Web 服务是目前Internet 上最常见的服务之一,要搭建一个Web 服务器,首先要选择
一套合适的Web 程序。在本章中将会以强大的Apache 为例,介绍相关的安装、配置、维
护和高级功能等方面的知识,演示如何在Linux 操作系统下构建基于Apache 的Web 服
务器。
16.1 Web 服务器简介
万维网又称为Web(World Wide Web,www),是在Internet 上以超文本为基础形成
的信息网。用户通过浏览器可以访问Web 服务器上的信息资源,目前在Linux 操作系统上
最常用的Web 服务器软件是Apache。本节将简单介绍Web 服务器的历史以及工作原理,
并介绍Apache 的特点以及它的功能模块。
16.1.1 Web 服务的历史和工作原理
Internet 上最热门的服务之一就是万维网,它是在因特网上以超文本为基础形成的信息
网。用户通过它可以查阅Internet 上的信息资源,例如,平时上网使用浏览器访问网站信
息就是最常见的应用。
Web 在1989 年起源于欧洲的一个国际核能研究院中,由于随着研究的深入和发展,
研究院里的文件数量越来越多,而且人员流动也很大,要找到相关的最新的资料非常困难。
于是一个科学家就提出了这样一个建议:在服务器上维护一个目录,目录的链接指向每个
人的文件;每个人维护自己的文件,保证别人访问的时候总是最新的文档,这个建议得到
采纳并被不断完善后,最终形成如今Internet 上最常见的WWW 服务。
Web 系统是客户/服务器模式(C/S)的,所以有服务器端和客户端程序两部分。常用
的服务器有Apache、IIS 等,常用的客户端浏览器有如IE、Netscape、Mozilla 等,用户在
浏览器的地址栏中输入统一资源定位地址(URL)来访问Web 页面。
Web 页面是以超文本标记语言(HTML)进行编写,它使得文本不再是传统的书页式
文本,而是可以在浏览过程中从一个页面位置跳转到另一个页面。使用HTML 语言编制的
Web 页面除文本信息外,还可以嵌入声音、图像、视频等多媒体信息。WWW 服务遵循
HTTP 协议,默认的端口为80,Web 客户端与Web 服务器的通信过程如图16.1 所示。
通信的过程分为以下3 步。
第16 章 Web 服务器配置和管理
(1)Web 客户端通过浏览器根据用户输入的URL 地址连接到相应的Web 服务器上。
(2)从Web 服务器上获得指定的Web 文档。
图16.1 Web 工作原理
(3)断开与远程的Web 服务器的连接。
用户每次浏览网站获取一个页面,都会重复上述的连接过程,周而复始。
16.1.2 Apache 简介
Apache 是一种开源的HTTP 服务器软件,可以在包括UNIX、Linux 以及Windows 在
内的大多数主流计算机操作系统中运行,由于其支持多平台和良好的安全性而被广泛使用。
Apache 由Illinois 大学Urbana-Champaign 的国家高级计算程序中心开发,它的名字取自
apatchy server 的读音,即充满补丁的服务器,可见在最初的时候该程序并不是非常完善。
但由于Apache 是开源软件,所以得到了开源社区的支持,不断开发出新的功能特性,
并修补了原来的缺陷。经过多年来不断的完善,如今的Apache 已是最流行的Web 服务器
端软件之一。Apache 拥有以下众多的特性,保证了它可以高效稳定地运行。
? 支持几乎所有的计算机平台。
? 简单有效的配置文件。
? 支持虚拟主机。
? 支持多种方式的HTTP 认证。
? 集成Perl 脚本语言。
? 集成代理服务器模块。
? 支持实时监视服务器状态和定制服务器日志。
? 支持服务器端包含指令(SSI)。
? 支持安全Socket 层(SSL)。
? 提供用户会话过程的跟踪。
? 支持PHP。
? 支持FastCGI。
? 支持Java Servlets。
? 支持通用网关接口。
? 支持第三方软件开发商提供的功能模块。
第3 篇 网络服务管理篇
·386·
16.1.3 Apache 的模块
Apache 采用模块化的设计,模块安装后就可以为Apache 内核增加相应的新功能。默
认情况下Apache 已经安装了部分的模块,用户也通过使用模块配置,自定义Apache 服务
器中需要安装哪些功能,这也是Apache 灵活性的表现。如表16.1 列出了Apache 全部的默
认模块和部分常用的非默认模块。
表16.1 Apache 模块列表
模 块 名 功 能 说 明 是否默认安装
mod_actions 运行基于MIME 类型的CGI 脚本 是
mod_alias 支持虚拟目录和页面重定向 是
mod_asis 发送包含自定义HTTP 头的文件 是
mod_auth_basic 基本验证 是
mod_auth_digest 使用MD5 加密算法的用户验证 否
mod_authn_alias 允许使用第三方验证 否
mod_authn_anon 允许匿名用户访问认证的区域 否
mod_authn_dbd 使用数据库保存用户验证信息 否
mod_authn_dbm 使用DBM 数据文件保存用户验证信息 否
mod_authn_default 处理用户验证失败 是
mod_authn_file 使用文本文件保存用户验证信息 是
mod_authnz_ldap 使用LDAP 目录进行用户验证 否
mod_authz_default 处理组验证失败 是
mod_authz_groupfile 使用plaintext 文件进行组验证 是
mod_authz_host 基于主机的组验证 是
mod_authz_user 用户验证模块 是
mod_autoindex 生成目录索引 是
mod_cache 通向URI 的内容Cache 否
mod_cgi 支持CGI 脚本 是
mod_cgid 使用外部CGI 进程运行CGI 脚本 是
mod_dir 提供用于trailing slash 的目录和索引文件 是
mod_env 调整传输给CGI 脚本和SSI 页面的环境变量 是
mod_example 解释Apache 模块的API 否
mod_filter 过滤信息 是
mod_imagemap imagemap 处理 是
mod_include 解析HTML 文件 是
mod_isapi ISAPI 扩展 是
mod_ldap 使用第三方LDAP 模块进行LDAP 连接和服务 否
mod_log_config 记录发给服务器的访问请求 是
mod_logio 记录每个请求输入、输出的字节数 否
mod_mime 联合被请求文件扩展名和文件行为的内容 是
mod_negotiation 提供内容协商 是
第16 章 Web 服务器配置和管理
·387·
mod_nw_ssl 为NetWare 打开SSL 加密 是
mod_proxy 支持HTTP1.1 协议的代理和网关服务器 否
mod_proxy_ajp mod_proxy 的AJP 支持模块 否
mod_proxy_balancer mod_proxy 的负载均衡模块 否
mod_proxy_ftp mod_proxy 的FTP 支持模块 否
mod_proxy_http mod_proxy 的HTTP 支持模块 否
mod_setenvif 允许设置基于请求的环境变量 是
mod_so 在启动或重启时提高可执行编码和模块的启动 否
续表
模 块 名 功 能 说 明 是否默认安装
mod_ssl 使用SSL 和TLS 的加密 否
mod_status 提供服务器性能运行信息 是
mod_userdir 设置每个用户的网站目录 是
mod_usertrack 记录用户在网站上的活动 否
mod_vhost_alias 提供大量虚拟主机的动态配置 否
关于Apache 模块的自定义安装和模块的使用将在后面的章节中陆续进行讲解。
16.2 Apache 服务器的安装
本节以 2.2.9 版本的 Apache 为例,介绍如何获得并通过源代码安装包在 Red Hat
Enterprise Linux 5.2 上安装Apache 服务器;如何启动关闭Apache 服务;如何检测Apache
服务的状态,以及配置Apache 服务的开机自动运行。
16.2.1 如何获取Apache 软件
Redhat Linux AS 5.2 自带了Apache,版本为2.2.3。用户只要在安装操作系统的时候把
http server 选项选中,Linux 安装程序将会自动完成Apache 的安装工作。如果在安装操作
系统时没有安装Apache,也可以通过安装光盘中的RPM 软件包进行安装,所需的RPM 软
件包如下所示。
httpd-2.2.3-11.el5_1.3.i386.rpm
httpd-manual-2.2.3-11.el5_1.3.i386.rpm 为了能获取最新版本的Apache,可以从Apache 官方网站 www.apache.org 下载该软件
的源代码安装包,包括gz 和bz2 两种压缩方式。截至本书定稿前,最新的Apache 版本为
2.2.9,下载页面如图16.2 所示。
第3 篇 网络服务管理篇
16.2 Apache 官方网站
下载后把httpd-2.2.9.tar.gz 文件保存到/tmp 目录下即可。
16.2.2 安装Apache 服务器
Apache 对系统的软件和硬件环境都有所要求,在安装前需要检查系统环境是否能满足
要求。检查完成后,先解压安装包文件,然后进行源代码的编译和安装。接下来将以Apache
2.2.9 的源代码安装包为例,详细介绍Apache 在Red Hat Enterprise Linux 5.2 上的完整安装
过程,如下所述。
(1)安装Apache 的硬件和软件配置要求。
? 确保磁盘至少有50MB 的空闲空间。
? 确保操作系统已经安装并正确配置了gcc。
(2)把httpd-2.2.9.tar.gz 文件解压,执行如下命令:
tar -xzvf httpd-2.2.9.tar.gz
文件将会被解压到httpd-2.2.9 目录下。
(3)进入httpd-2.2.9 目录,使用configure 命令配置安装参数,configure 命令的格式为:
configure [OPTION]... [VAR=VALUE]...
关于configure 命令的选项和参数说明可以通过下面命令获得。
./configure --help
这里只介绍几个常用的配置参数,如下所示。
? --prefix 参数:默认情况下Apache 会安装在/usr/local/apache2 目录下,该参数用于
自定义Apache 的安装目录。例如,要把Apache 安装到/usr/local/apache 目录下,
可以使用./configure –prefix=/usr/local/apache 配置命令。
第16 章 Web 服务器配置和管理
·389·
? --enable-modules 参数:用于指定除默认模块以外需要额外安装的Apache 模块,不
同的模块之间以空格分隔。关于Apache 常用模块的功能在16.1.3 节中已有详细说
明。例如,要安装 mod_proxy 和 mod_ssl 两个模块,可以使用./configure
--enable-modules="proxy ssl"配置命令。
? --enable-mods-shared 参数:与--enable-modules 参数一样,该参数同样用于指定需
要额外安装的 Apache 模块,参数格式也是一样。所不同的是,--enable-modules
参数指定安装的模块在Apache 运行的时候就会自动载入,而--enable-mods-shared
参数所指定的Apache 模块需要使用LoadModule 指令进行载入。
在这里只采用默认安装,所以直接运行./configure 即可,运行结果如图16.3 所示。
(4)编译并安装Apache,如下所示。
make
make install
运行结果分别如图16.4 和图16.5 所示。
图16.3 配置安装参数
第3 篇 网络服务管理篇
图16.4 编译Apache
图16.5 安装Apache
16.2.3 启动和关闭Apache
安装完成后就可以启动Apache 服务。Apache 的启动关闭都是通过<Apache 安装目录>
/bin 目录下的apachectl 命令进行管理的。启动Apache 服务,如下所示。
./apachectl start
关闭Apache 服务,如下所示。
./apachectl stop
重启Apache 服务,如下所示。
./apachectl restart
第16 章 Web 服务器配置和管理
安装Apache 后,在没有对httpd.conf 配置文件做任何修改之前启动Apache 服务会得
到一些警告信息,如图16.6 所示。
因为httpd.conf 配置文件中的ServerName 参数没有设置,但是这不会影响Apache 的
正常运行,关于httpd.conf 配置文件的修改会在16.3.2 和16.3.3 小节中进行讲解。
除此之外,在正常情况下启动Apache 服务是不会有任何警告或者错误信息输出的,
如果出现如图16.7 所示的错误信息,用户就应该检查一下是否有其他进程占用了80 端口。
图16.6 第一次启动的报警信息 图16.7 错误信息
16.2.4 检测Apache 服务
要检测Apache 服务是否正在运行,可以通过检查Apache 进程状态或者直接通过浏览
器访问Apache 发布的网站页面来确定。
1.检查Apache进程
可以通过以下命令检查Apache 进程的状态。
ps -ef | grep httpd 运行结果如图16.8 所示。Apache 运行后会在操作系统中创建多个httpd 进程,能在操
作系统中查找到httpd 进程,表示Apache 正在运行。
2.检查Apache页面
通过查看进程的方法只能确定Apache 是否正在运行,但要检查Apache 的运行是否正
常,最直接有效的方法就是通过浏览器查看Apache服务器发布的页面。默认安装后,Apache
网站的首页是一个测试页面,用户可以通过它来检查 Apache 是否运行正常,如图 16.9
所示。
第3 篇 网络服务管理篇
图16.8 查看Apache 进程
图16.9 Apache 测试页面
16.2.5 让Apache 自动运行
Red Hat Enterprise Linux 5.2 可以支持程序服务的开机自动运行,如果要配置Apache
服务在服务器启动的时候自动运行,可以编写启动和关闭Apache 服务的脚本,然后进行
相应的配置。具体步骤如下所述。
(1)编写启动和关闭Apache 服务的脚本,脚本文件名为httpd,并存放到/etc/rc.d/init.d
目录下。下面分几个部分对脚本的内容进行说明,用户只需要按顺序把这些代码添加到
httpd 文件中即可。设置Apache 服务与chikconfig 相关的选项,并执行初始化环境变量的
脚本,代码如下所示。
#!/bin/sh // 设置与chkconfig 相关的选项
#chkconfig :345 85 15 //设置启动级别以及启动顺序
#description:some words you like!! //描述信息
# Source function library.
. /etc/rc.d/init.d/functions //执行/etc/rc.d/init.d/functions 脚本
// 调用系统初始化脚本
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions //执行. /etc/init.d/functions 脚本
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions //执行. /etc/rc.d/init.d/functions 脚本
else
exit 0 //如果找不到上述脚本则结束本脚本的运行
fi
设置与启动关闭Apache 服务相关的选项,代码如下所示。
//获取命令输入的参数
ARGV="$@" //设置httpd 命令的路径
HTTPD='/usr/local/apache2/bin/httpd' //如果envvars 文件存在,则执行envvars 文件设置Apache 的环境变量
if test -f /usr/local/apache2/bin/envvars; then
. /usr/local/apache2/bin/envvars //执行/usr/local/apache2/bin/envvars
fi //设置命令行的HTML 格式
LYNX="links -dump" //设置mod_status 模块的状态页面的URL
第16 章 Web 服务器配置和管理
·393·
STATUSURL=" http://localhost:80/server-status