基于本地镜像RPM包安装并配置Apache(httpd)服务实验报告
本文介绍了在无外网环境下通过RPM手动安装Apache(httpd)服务的完整流程。实验基于CentOS7系统,首先挂载本地镜像获取软件包,依次安装httpd-tools和mailcap依赖包,再安装主服务包。详细说明了httpd服务的配置、启动及访问验证方法,并对比了RPM与YUM安装的差异。针对镜像挂载失败、依赖错误、服务启动异常等常见问题提供了解决方案。该实验不仅帮助理解软件包依赖关系,也适
一、实验目的
- 掌握Linux系统中本地镜像挂载的方法,能够访问镜像内的软件资源。
- 熟练使用RPM(Red-Hat Package Manager)命令手动安装软件包,理解RPM包安装的依赖关系处理逻辑。
- 完成Apache(httpd)服务的安装、基础配置、启动及访问验证,掌握httpd服务的基础运行流程。
- 对比YUM自动安装与RPM手动安装的差异,明确RPM安装在无YUM源场景下的应用价值。
二、实验环境
|
项目 |
说明 |
|
操作系统 |
CentOS 7(x86_64架构,RHEL 7系列兼容) |
|
硬件/存储 |
已准备CentOS 7系统完整安装镜像,光驱/镜像设备标识为/dev/sr0 |
|
网络环境 |
无外网连接(或外网资源不可用),依赖本地镜像完成软件安装 |
|
核心软件包 |
httpd-tools-2.4.6-45.el7.centos.x86_64.rpm、mailcap-2.1.41-2.el7.noarch.rpm、httpd-2.4.6-45.el7.centos.x86_64.rpm |
|
工具软件 |
vim(文本编辑器)、curl(HTTP请求工具)、rpm(包管理工具) |
三、实验原理
- 本地镜像挂载原理:Linux系统中,光盘/ISO镜像属于块设备,需通过mount命令挂载到指定目录(如/media),使设备内的文件系统被系统识别,从而可访问镜像内的资源(如RPM包)。
- RPM包安装原理:RPM是基于Red Hat系统的软件包管理格式,包含软件的二进制文件、配置文件、依赖信息等。使用rpm -ivh命令可手动安装RPM包,其中“-i”表示安装,“-v”显示详细安装过程,“-h”以进度条显示安装进度。
- httpd服务依赖关系:httpd(Apache主服务)运行依赖httpd-tools(httpd配套工具包)和mailcap(邮件支持相关依赖包),需先安装依赖包,再安装主服务包,否则会提示依赖错误导致安装失败。
- httpd服务运行逻辑:安装完成后,通过systemctl命令启动服务,httpd默认监听80端口,默认网站根目录为/var/www/html,访问该目录下的index.html文件即可验证服务是否正常运行。
四、实验步骤(附命令详解)
步骤1:挂载本地系统镜像到指定目录
mount /dev/sr0 /media
- 命令作用:将/dev/sr0对应的系统安装镜像挂载到/media目录,使镜像内的文件(包括RPM包)可通过/media目录访问。
- 注意事项:
- 执行该命令需使用root权限,若当前为普通用户,需先执行su -切换到root用户。
- 若提示“mount: /dev/sr0 is write-protected, mounting read-only”,属于正常提示,镜像默认以只读模式挂载。
- 若提示“/media is busy”,需先执行umount /media卸载原有挂载,再重新执行挂载命令。
步骤2:进入镜像内RPM包存放目录
cd /media/Packages
- 命令作用:切换到镜像内RPM包的默认存放目录(/media/Packages),该目录包含CentOS 7系统的所有基础软件RPM包,httpd相关包均在此目录下。
- 补充说明:若命令中“P...”为其他路径,需根据实际镜像目录结构调整,核心是进入包含httpd相关RPM包的目录。可通过ls命令查看目录下的文件,确认目标RPM包是否存在。
步骤3:安装httpd依赖包——httpd-tools
rpm -ivh httpd-tools-2.4.6-45.el7.centos.x86_64.rpm
- 命令作用:安装httpd服务的配套工具包,该包提供httpd运行所需的辅助工具(如htpasswd等),是httpd服务的核心依赖之一。
- 正常输出:命令执行后,会显示进度条(#######),最终提示“Complete!”,表示该依赖包安装成功。
步骤4:安装httpd依赖包——mailcap
rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
- 命令作用:安装mailcap包,该包用于处理邮件相关的MIME类型映射,httpd服务在处理部分资源请求时依赖此包。
- 包类型说明:“noarch”表示该RPM包不依赖具体硬件架构,可在32位和64位CentOS 7系统上通用;而“x86_64”表示仅适用于64位架构系统。
步骤5:安装httpd主服务包
rpm -ivh httpd-2.4.6-45.el7.centos.x86_64.rpm
- 命令作用:安装Apache(httpd)主服务包,该包包含httpd服务的核心程序、配置文件等,是实现Web服务的核心组件。
- 关键说明:必须先完成步骤3和步骤4的依赖包安装,否则执行此命令会提示“error: Failed dependencies”(依赖失败),并列出缺失的依赖包,导致安装终止。
步骤6:编辑httpd默认首页文件
vim /var/www/html/index.html
- 命令作用:编辑httpd服务的默认首页文件,httpd服务启动后,默认会访问/var/www/html目录下的index.html文件作为首页。
- 编辑内容:在vim编辑器中输入以下测试内容(按i进入插入模式,输入完成后按Esc,再输入:wq保存退出):
<!DOCTYPE html>
<html>
<head>
<title>RPM Install httpd Test</title>
</head>
<body>
<h1 style="text-align: center;">Apache (httpd) Service Started Successfully!</h1>
<p style="text-align: center;">Installed by RPM Package Manually</p>
</body>
</html>
步骤7:启动httpd服务
systemctl start httpd
- 命令作用:通过systemctl系统服务管理工具启动httpd服务。
- 补充操作:
- 启动后可执行systemctl status httpd查看服务状态,若输出中显示“active (running)”,表示服务启动成功;若显示“failed”,需排查错误原因。
- 可选执行systemctl enable httpd,设置httpd服务开机自启,避免系统重启后需重新手动启动服务。
步骤8:验证httpd服务是否正常运行
curl 127.0.0.1
- 命令作用:使用curl工具向本地(127.0.0.1为本地回环地址)的httpd服务发送HTTP请求,验证服务是否能正常响应并返回首页内容。
- 正常输出:命令执行后,会显示步骤6中编辑的HTML内容,说明httpd服务运行正常,可正常处理访问请求。
五、实验结果
- 本地镜像挂载成功:通过cd /media/Packages可正常进入目录,ls命令可查看httpd相关RPM包,说明镜像挂载有效。
- RPM包安装成功:依次执行3个RPM包安装命令后,无依赖错误提示,均显示“Complete!”;执行rpm -q httpd httpd-tools mailcap可查询到3个包的安装信息(如httpd-2.4.6-45.el7.centos.x86_64),确认安装完成。
- httpd服务配置与启动成功:编辑的index.html文件保存正常,systemctl start httpd无错误提示,systemctl status httpd显示服务处于running状态。
- 服务访问验证成功:curl 127.0.0.1能完整返回自定义的首页HTML内容,无404 Not Found、500 Internal Server Error等错误,说明httpd服务可正常对外提供Web访问服务。
六、常见问题与解决方法
1. 镜像挂载失败
- 现象:执行mount /dev/sr0 /media提示“no medium found”(无介质)。
- 解决方法:① 虚拟机环境需检查是否已在虚拟机设置中挂载CentOS 7 ISO镜像,且勾选“已连接”;② 物理机环境需确认光盘已正确放入光驱;③ 可尝试使用/dev/cdrom(光驱符号链接)替换/dev/sr0,执行mount /dev/cdrom /media重试。
2. RPM安装提示依赖失败
- 现象:安装httpd主包时提示“error: Failed dependencies: httpd-tools = 2.4.6-45.el7.centos is needed by httpd-2.4.6-45.el7.centos.x86_64”。
- 解决方法:严格按照“先依赖包、后主包”的顺序安装,先安装提示中缺失的依赖包(如httpd-tools),再重新安装httpd主包;若存在多个依赖缺失,需逐一安装完整依赖。
3. httpd服务启动失败
- 现象:systemctl start httpd提示“Job for httpd.service failed because the control process exited with error code.”。
- 解决方法:① 执行journalctl -xe | grep httpd查看详细错误日志,最常见原因是80端口被占用;② 执行netstat -tnlp | grep 80查询占用80端口的进程,若有占用,可执行kill -9 进程ID终止占用进程,再重新启动httpd;③ 若日志提示配置文件错误,需检查/etc/httpd/conf/httpd.conf文件的语法正确性。
4. curl访问提示无法连接
- 现象:curl 127.0.0.1提示“curl: (7) Failed connect to 127.0.0.1:80; Connection refused”。
- 解决方法:① 检查httpd服务是否启动,执行systemctl start httpd启动服务;② 检查防火墙是否拦截80端口,CentOS 7默认防火墙(firewalld)可能拦截80端口,可执行firewall-cmd --permanent --add-port=80/tcp开放80端口,再执行firewall-cmd --reload重载防火墙配置。
七、实验总结
1. 核心要点回顾
- RPM手动安装的核心是**依赖顺序**,必须先识别并安装主程序所需的依赖包,再安装主包,否则会导致安装失败;而YUM安装的优势在于可自动解决依赖关系。
- 本地镜像挂载是无外网场景下获取RPM包的关键步骤,挂载目录(如/media)可自定义,但需确保后续访问路径与挂载目录一致。
- httpd服务的基础使用流程可总结为“安装→配置首页→启动服务→访问验证”,默认网站根目录和监听端口是核心配置项,需牢记其默认值(根目录/var/www/html,端口80)。
2. 实验心得与拓展
本次实验通过手动RPM安装httpd服务,深入理解了软件安装的依赖关系处理逻辑,相比YUM自动安装,RPM手动安装更能帮助掌握软件的依赖结构,但操作步骤更繁琐,适用于无YUM源或需精准控制软件版本的场景。
实验拓展方向:
- 配置httpd虚拟主机,实现多个域名对应不同的网站内容。
- 学习RPM包的卸载(rpm -e 包名)和升级(rpm -Uvh 包名)命令,完善RPM包管理技能。
- 搭建本地YUM源,将镜像内的RPM包制作成YUM源,实现从手动RPM安装到自动YUM安装的过渡。
更多推荐



所有评论(0)