客服中心

返回顶部

在RHEL 4下安装使用Apache+花生壳服务搭建网站服务

Web服务,也称WWW服务,是最常见的网络服务之一,用户通过网页浏览器可以轻松浏览Web服务器中的网页内容。目前较常见的Web服务器有运行在Windows环境中的IIS服务器和在几乎在各种平台都可以运行的Apache服务器。
Apache 音译为阿帕奇, Apache这个命名是根据北美当地的一支印第安部落而来,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的入侵者进行了反抗。为了对这支印第安部落表示敬仰之意,取该部落名称(Apache)作为服务器名。但一提到这个命名,这里还有流传着一段有意思的故事。因为这个服务器是在 NCSA httpd 服务器的基础之上,通过众人努力,不断地修正、打补丁(Patchy)的产物,被戏称为“A Patchy Server”(一个补丁服务器)。在这里,因为“Patchy”与“Apache”是谐音,故最后正式命名为“Apache Server”。
Apache 是最著名的开源软件之一,在Web服务器领域长期占据超过半数的份额。本文在Red Hat Enterprise Linux 4系统下安装配置Apache,并使用花生壳(Peanuthull)2008 for Linux实现动态域名访问Apache站点。

一、在RHEL4中编译安装Apache

RHEL4系统中默认安装了Apache服务器,软件包名称是httpd而不是apache,版本为2.0.52。我们可以用命令rpm -qa | grep httpd先把这个旧版卸载掉,以防止即将安装的新版和旧版的安装目录文件发生冲突。

安装时采用编译安装的方式,此种方式相对RPM包安装会复杂一些,但是具有更大的自由度,可以根据自己的应用需要在编译之前对Apache服务器进行功能的定制。编译安装的主要步骤包括:

1.获得Apache服务器的源码包

首先需要下载Apache的源码包。Apache软件基金会(也就是Apache Software Foundation,简称为ASF)专门负责管理和维护Apache 项目,ASF的官方网站是http://www.apache.org 。http://httpd.apache.org/download.cgi 是ASF官网下载Apache的主页,这里列出了Apache的主要版本:1.X和2.X。当前最新也是最好的版本是2008-12-14日发布的 2.2.11版,我们需要下载的软件包是httpd-2.2.11.tar.gz(软件包名称是httpd而不是apache)。如下图:

httpd-2.2.11.tar.gz包下载后,我们把它保存在/home/paopaobo/backup,大小有6M多。如下图:

2.确认具备编译所需的环境

RHEL4系统中编译安装Linux需要一定的开发编译环境。我们可以用命令rpm -qa | grep gcc查询最重要的gcc软件包在系统中是否已经安装。结果是没有。那么可以通过命令system-config-packages运行RHEL4提供的软件包管理程序安装完整的开发编译环境。如下图:

实际上system-config-packages这个命令就是调用了下图中所示的Add/Remove Applications:

运行命令后会先检查系统状态,然后在弹出的界面选中Development Tools进行Update,如下图:

接下来按照系统的提示插入安装所需的光盘既可,如下图:

耗时十几分钟,终于安装好所需的编译环境,如下图:

此时再次用命令rpm -qa | grep gcc查询,gcc软件包在系统中已经安装,如下图:

3.进行Apache的编译安装

接下来正式进入编译过程。Apache服务器的编译安装采用标准的源代码编译安装步骤,主要包括:

(1) 使用tar命令释放源代码安装包
(2) 使用./configure命令进行编译前的配置工作
(3) 使用make命令进行程序的编译
(4) 使用make install命令将已经编译的文件安装到系统中
其中(3)和(4)可以合并完成。

下面按照步骤进行详细说明:

(1) 释放源码包文件

将下载保存在/home/paopaobo/backup的源码包复制到目录/usr/local/src/中,该目录通常用于保存需要编译的程序源代码。进入目录”/usr/local/src/”后可使用tar命令将源代码包释放,如下图:

tar命令执行后会在当前目录下生成名为httpd-2.2.11的源代码目录,进入该目录可看到释放后的文件,如下图:

(2) 编译前的配置

在httpd-2.2.11的源代码目录中使用./configure命令进行编译前的配置工作,如下图:

命令为./config -prefix=/usr/local/apache2 --enable-so --enable-rewrite,含义如下:
-prefix;选项预指定Apache服务器程序将要安装到的系统目录,此处我们指定为 /usr/local/apache2,从上图可见当前/usr/local/下并没有这个目录,该目录将在命令运行过程中被建立。
--enable-so;选项设置Apache服务器可以使用动态加载模块功能,相当于Windows系统中的.dll文件,动态加载模块功能可节省系统内存资源。
--enable-rewrite选项设置Apache服务器具有rewrite功能,可实现对动态网页地址的重写。

./config 命令的执行需要一定的时间,其间屏幕将显示配置过程信息。

(3) 编译服务器程序

配置完成后,执行make命令进行程序的编译,该过程真正的将程序源代码转换为可执行程序。

(4) 安装已编译完成的程序

得到可执行程序后的最后一步,就是用make install命令将已经编译完成的可执行程序安装到预指定的安装目录 /usr/local/apache2中。

步骤3和4耗时很久,在这里我们把这两步一起执行,命令是make;make install ,如下图:

命令运行中同样会显示过程信息,时间上比./config; 配置命令更长。

可以看到安装成功后 /usr/local/中多了一个apache2目录,该目录包括了完整的源代码编译获得的Apache服务器程序,目录文件总大小约24M,如下图:

二、 在RHEL4中配置Apache

至此Apache就通过编译安装在系统的目录/usr/local/apache2中了,该目录称为Apache服务器的根目录。下面我们看看Apache服务器根目录中包含的子目录。

如上图,根目录 /usr/local/apache2中包含以下目录:

bin目录中包含了Apache服务器运行和管理所需的执行程序,其中httpd是服务器的执行程序,apachectl是服务程序的启动脚本。

lib目录中保存了Apache服务器运行所需的库文件。

conf目录用于保存Apache服务器的配置文件,其中httpd.conf是Apache服务器的主配置文件。

htdocs目录是Apache服务器的文档根目录,该目录将作为Web服务器的根目录。

manual目录中保存了Apache服务器的帮助手册文件,文件是网页格式的,可以通过访问Apache服务器中的manual目录阅读该目录下的帮助文件内容。

继续看,如上图,根目录/usr/local/apache2;中还包含的目录有:

man目录用户保存Apache服务器的手册页文件,文件被分别保存在man1和man8两个子目录中,可以使用man命令阅读指定的手册页文件查询目录的帮助信息。

logs目录用户保存Apache服务器的日志文件。

理解以上Apache服务器常用目录的功能有助于对服务器的管理。

接下来我们将httpd服务运行起来。
前面我们说过,bin目录中的apachectl是服务程序的启动脚本。进入bin目录后:
apachectl start——启动httpd服务
apachectl stop——停止httpd服务
apachectl restart——重启httpd服务

更多命令参数:进入bin目录后,直接运行apachectl将显示帮助信息。

现在我们进入/usr/local/apache2/bin目录,用apachectl start启动httpd服务,如下图:

如果要使Apache服务器在Linux系统启动时自动运行,可以将Apache服务器的启动脚本apachectl的启动命令写入到/etc/rc.local文件,如下图:

在文件末尾添加启动命令/usr/local/apache2/bin/apachectl start;,然后保存、退出,如下图:

启动了httpd服务后,我们在RHEL4本机已经可以访问到Apache服务器的测试页面内容。证明httpd服务的确已成功启动,如下图:

接着我们在局域网内另一台Windows XP Pro SP3上测试,却无法访问到192.168.0.10,如下图:

经过分析,不能访问的原因在于RHEL4的防火墙设置。用命令system-config-securitylevel-tui打开防火墙配置工具,在该界面中选择Customize进入防火墙设置界面,如下图:

在防火墙的设置界面中,选中WWW(HTTP)网络服务,允许网络中的其他计算机访问当前RHEL4主机的WWW网络服务,如下图:

该防火墙配置工具设置保存后是即时生效的,并将设置保存到文件中。
这时我们再回到局域网内另一台Windows XP上刷新浏览器页面,成功的访问到Apache服务器的测试页面,如下图:

最后我们说一下Apache服务器的配置文件/usr/local/apache2/conf/httpd.conf,前面提到过,httpd.conf是Apache服务器的主配置文件,如下图:

用vi打开httpd.conf,我们看到相当多的注释,如下图:

注释行以#开头,其内容只起到说明和注释作用,对服务器的配置不起作用。初学者通过阅读注释行可以快速获得配置项的帮助内容。而行首没有#的称为设置行,是配置文件中真正有效的设置内容。

经统计,httpd.conf文件中的注释行的数量甚至超过了设置行的数量,过多的注释行内容会对配置文件的阅读造成一定的干扰,我们可以用grep命令去除httpd.conf文件中的注释行的内容,来获得有效的配置清单,如下图:

如上图,httpd.conf文件中的设置行大致内容如下:

ServerRoot用于设置Apache服务器的根目录;
Listen设置Apache服务器监听的网络端口号,默认为80;
ServerAdmin用于设置Apache服务器管理员的E-mail地址;
DocumentRoot用于设置Apache服务器网页(文档)根目录在Linux系统中的实际目录;

这类配置项称为全局配置项,这些配置项不包括在任何区域中,决定了Apache服务器的全局设置。

还有一类配置项称为区域配置项。实际上,httpd.conf文件中的大多数设置都是包括在区域中的,例如:

在以上的区域定义中,使用定义区域的开始,使用定义区域的结束,区域开始和结束之间的设置内容只作用于该区域内部,而不会在全局或其他区域中生效。掌握在区域中进行合理设置可以对Apache服务器进行非常灵活的功能设置。

关于Apache服务器的更多设置,请参考http://www.apache.org。

三、 在RHEL4中安装花生壳(Peanuthull)2008 for Linux实现动态域名访问

最后我们在RHEL4系统中安装Peanuthull 2008 for Linux,实现通过域名对Apache测试页面的访问。

将适合RHEL4的包phlinux-1.0-install.redhat.tar.gz下载到系统中,然后进入压缩包所在文件夹,用tar命令解压缩,如下图:

解压后生成文件夹phlinux_install,进入文件夹,执行安装脚本#./install.sh,如下图:

执行过程中系统报错:缺少libstdc++.so.5库,用rpm -qa | grep libstdc查询,发现RHEL4系统默认安装的是libstdc++3的版本,如下图。去查找libstdc++3安装即可,过程省略。

安装好libstdc++.so.5库后,再次执行安装脚本#./install.sh,将自动以互动配置模式的phlinux程序:
输入web服务的地址,直接回车

Runing phlinux for first configuration...
Peanuthull Linux-core 1.0 by oray.net, copyright 2005
No user configuration found, entering interactive mode automatically!

Peanuthull Linux-core Interactive startup.
Please input service address(press ENTER use phservice.oray.net):

输入花生壳服务器地址phlinux3.oray.net,直接回车
Please input server address(press ENTER use PH031.Oray.Net):

此处提示输入花生壳帐号名
Please input username(press ENTER use ):

此处提示输入花生壳帐号密码
Please input password:

系统提示是否保存配置文件,在这里输入yes回车,花生壳即登录在线。
Save to configuration file (/etc/phlinux.conf)?(yes/no):

登录完成后,在局域网内另一台Windows XP系统的电脑上用nslookup 域名 ns1.oray.net检查解析结果,如下图:

尝试访问域名,显示Apache测试页面,如下图:

总结:在Red Hat Enterprise Linux 4下安装和配置使用Apache后,经过花生壳的动态域名解析,就可以实现通过域名访问到Apache站点。在实际应用中,除了Web服务器之外,还需要有网页编程语言和后台数据库等多种角色,例如LAMP网页应用架构(Linux平台下的Apache服务器+MySQL数据库+Perl/PHP /Python语言)。