手头刚好在准备一套 Linux 服务器的练习环境,顺手把一个开源 PHP 论坛程序搭了上去,结果发现这一整套下来,几乎把 RHCSA 认证的考点全部过了一遍。很多人备考 RHCSA 喜欢按章节刷题,用户管理刷一遍、SELinux 刷一遍、网络配置刷一遍,刷完还是觉得整个系统是零散的。其实换个思路,用一个"搭论坛"的项目把所有操作串起来,你会发现那些命令和配置不再是孤立的考题,而是真的在解决一个个具体问题。这篇文章就讲清楚我在这套环境里从装系统到论坛跑通的全过程,包括每一步做了什么、为什么要这么做、踩了哪些坑,适合正在备考 RHCSA 的初学者,也适合想系统练一遍 Linux 服务搭建的人参考。
1. 为什么拿"搭论坛"练 RHCSA:以点带面的备考思路
1.1 一个论坛背后涉及的 RHCSA 考点全景
一个论坛系统,本质上就是一个典型的 Web 应用:数据库存数据、PHP 处理逻辑、Web 服务器对外提供服务。拆开来看,论坛项目的每一个环节都能跟 RHCSA 的知识点对上号。我列过一张表,把这些考点和论坛场景做了映射:
| RHCSA 考点模块 | 论坛项目里的对应场景 |
|---|---|
| 用户与组管理 | 创建论坛运行用户、管理组、目录属主属组 |
| 软件包管理 | 用 dnf 安装 httpd、MariaDB、PHP 及依赖 |
| 系统服务管理 | systemd 管理 Web 和数据库服务的启停、开机自启 |
| 存储与文件系统 | 为论坛数据单独建逻辑卷、格式化、挂载、fstab 持久化 |
| 网络配置 | 配置静态 IP、主机名、/etc/hosts 解析 |
| 安全与 SELinux | 让 httpd 能写论坛目录、能连数据库,处理文件上下文 |
| 防火墙 | firewalld 放行 HTTP/HTTPS 端口 |
| 日志与排障 | 根据 Web 日志、数据库日志排查论坛无法访问的报错 |
| 计划任务 | 定时备份论坛目录和数据库 |
| 权限控制 | sudo 提权、ACL 辅助授权、文件权限位设置 |
这张表列完你就会发现,一次论坛搭建,几乎可以把 RHCSA 的高频考点全部覆盖,而且每个知识点都是在真实场景里用出来的,比单纯背命令印象深得多。我更看重的是项目带来的"问题感":比如论坛页面打不开了,你得自己判断是防火墙的问题、SELinux 的问题、目录权限的问题、还是数据库没起来。这种排障过程,才是 RHCSA 考试真正想要的东西。
1.2 项目式备考的节奏安排
别一上来就装论坛,分阶段走更稳妥。我把整个练习拆成三周,每周有明确交付物。
第一周是基础环境阶段。目标只有两个:装好系统、配好网络。熟悉 dnf、systemd、用户管理这些基本操作,不用碰论坛,但要把系统配置得伸手就来。这一周我会反复练关机重启,确保重启后所有配置还在。
第二周是服务部署阶段。把 Web、数据库、PHP 装起来,让论坛程序能跑通安装向导。这一周的核心是理解服务之间怎么协作,一个请求从浏览器到论坛页面,中间经过了哪些环节、每层可能在哪里出问题。
第三周是加固与运维阶段。做完 SELinux 适配、防火墙规则、备份脚本,然后反复做"破坏-修复"练习:把某个服务停了、把某个目录权限改了,再在十分钟内定位并恢复。这阶段训练的是考场上最需要的稳定心态和排查肌肉记忆。
这个节奏的核心逻辑是:先让系统"听话",再让服务"跑起来",最后让环境"抗造"。每一步都用到前一步的能力,自然就熟练了。
2. 环境准备与基础操作:先把地基打牢
2.1 练习环境的规划与快照管理
搭论坛需要一个干净的 Linux 环境。我是用虚拟机建的,给了 2 核 CPU、4GB 内存、60GB 硬盘,系统装好后再把网络切到桥接模式方便测试。内存 4GB 是底线,2GB 跑 Web 加数据库会比较吃力,虚拟内存一上去整机变卡,排障时很容易误判成服务问题。
装系统时有一个细节值得注意:软件包选择阶段不要装图形界面,用最小化安装加标准工具即可。论坛用不上图形桌面,保持服务器纯净反而能逼着你用命令行,而且考试环境默认也是没有图形界面的。
无论你用虚拟机还是物理机,我强烈建议在装好系统、配置好网络之后先打一个快照。这个操作可能在熟悉虚拟机的人眼里不值一提,但对练习排障非常有用。每次踩坑踩到系统起不来了,直接回滚到快照,几分钟就能回到起点重新来过。没有快照,一次分区错误可能直接让你重装整个系统,白白浪费一个晚上。我在装论坛的全程里至少打了四个快照:装完系统一个、配好网络一个、装完整个论坛环境一个、备份脚本写完又一个。
2.2 网络与主机名配置实操
论坛跑起来要能被浏览器访问,网络配置是绕不开的第一关。我用 nmcli 来配静态 IP,这是 RHCSA 的重点考核方式。命令不长,但值得逐条理解:
nmcli connection add type ethernet con-name eth0 ifname eth0 nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.1 nmcli connection up eth0这里 network 配置的几个参数背后都有讲究。ipv4.method manual 是静态配置的关键,不改这行,系统还是会走 DHCP,你手动填的 IP 地址在重启后会失效。ipv4.addresses 里我习惯把掩码直接写成 CIDR 格式/24,少写一步少一个出错的机会。DNS 如果忘了配置,后面用域名访问外网资源或者解析主机名都会出问题,而且这类问题隐藏得很深。
主机名也别忽略。我把它改成了forum-node01,用 hostnamectl 一次搞定。主机名在排障时用处很大,日志里能看到是哪台机器报的错,多台机器环境里不至于看日志看晕。
hostnamectl set-hostname forum-node01 exec bash然后顺手在 /etc/hosts 里加一条本机解析,把主机名映射到本机 IP。这一步很多人嫌多余,实测相当有用:有些服务内部会对本地主机名做解析,解析不了就直接拒绝启动,尤其是数据库相关的组件尤其敏感。
2.3 软件源与系统更新:把 dnf 用熟练
dnf 是 RHCSA 软件包管理的核心操作,搭论坛的过程中你会大量用到它。环境装好后第一步就是检查软件源:
dnf repolist dnf update -y如果你的环境没法接外部网络,就需要配置本地软件源,把安装镜像里的软件包共享出来。这一节练习的还不是简单的"装包",而是理解软件包依赖关系。比如装 PHP 的时候,dnf install php会自动拉取 php-fpm、php-common 这些依赖,但我后面要装论坛,还需要 php-mysqlnd、php-xml、php-gd、php-mbstring 这些扩展模块,缺一个论坛页面就可能白屏,或者提示某个函数不存在。每个 PHP 扩展对应一类功能,mbstring 处理字符编码、gd 处理图像验证码、xml 处理订阅输出,装少了论坛就是跑不全。
安装完软件包,你还需要验证软件包的完整性:
rpm -qa | grep php rpm -V phprpm -V校验文件是否被改动过。这个命令在考试里不常考,但平时养成习惯,有助于理解 rpm 的完整性校验机制,真遇到系统文件被误改的情况,能第一时间发现。
3. 论坛环境部署核心环节:Web + 数据库 + PHP 三板斧
3.1 用户与权限模型设计:论坛目录该归谁
论坛程序需要写文件,比如用户上传头像、生成缓存文件,所以运行目录的属主和权限必须规划清楚。我不会让论坛目录直接归 root 所有,而是单独建一个系统用户来跑 Web 服务相关进程,避免权限过大。
创建用户时用:
useradd -r -s /sbin/nologin -d /var/www webuser-r创建系统用户,-d指定家目录为 Web 根目录,-s /sbin/nologin禁止该用户登录系统。这样一个用户只能用来运行服务,就算被利用也拿不到 shell。
论坛程序目录/var/www/forum我设置成属主为 webuser,属组为 webuser,权限 755。程序文件保持只读就够了,但 data、upload、cache 这些需要写入的目录要单独放宽权限到 775。这种"运行目录只读、数据目录可写"的做法是为了安全,也是很多运维事故的教训总结:把整个目录都改成 777 虽然省事,但任何用户都能改你的网站文件,风险大得多。
RHCSA 考试里经常考到 umask 和环境配置,这里也顺手练了一下。写脚本的时候把它放到脚本开头,保证后续创建的文件都带上合适的权限位,而不是依赖系统默认值。
3.2 Web 服务安装配置:httpd 从入门到够用
装 httpd 很简单,一条命令就够:
dnf install -y httpd systemctl enable --now httpdenable --now是我平时用得最多的组合,等于enable加start一步到位,同时保证服务现在起来、重启后也会自动起来。考试里经常有"做完了配置重启机器以后必须生效"的要求,靠的就是 enable。
论坛目录我放在/var/www/forum,但默认的 httpd 根目录是/var/www/html。为了不污染默认站点,我建了一个虚拟主机配置文件/etc/httpd/conf.d/forum.conf:
<VirtualHost *:80> ServerName forum.example.com DocumentRoot /var/www/forum <Directory "/var/www/forum"> AllowOverride All Require all granted </Directory> </VirtualHost>配置完要重载服务,注意这里有两个命令的区别:systemctl reload httpd重载配置文件,连接不会断;systemctl restart httpd全停再全启,会在瞬间断开所有连接。服务调整配置优先用 reload,只有加载不了新配置或者改了监听端口这类重大变更,才需要 restart。
虚拟主机配置好以后,httpd -t先检查语法,然后再 reload。这个检查习惯能帮你把大部分配置错误拦截在生效之前,而不是等浏览器报错再回头查。
3.3 数据库与 PHP 环境:MariaDB 的创建和授权
数据库我用 MariaDB,安装配置也算 RHCSA 系统管理内容的一部分:
dnf install -y mariadb-server systemctl enable --now mariadb安装完要跑一下安全初始化脚本:
mysql_secure_installation这个脚本会引导你设置 root 密码、移除匿名账号、禁止 root 远程登录、删除测试数据库。很多人觉得这步无所谓,尤其练习环境更懒得搞。但我要说,RHCSA 的精神就是"最小权限",数据库直接裸奔和考试理念完全背道而驰,而且论坛部署完成以后要长期跑下去的话,安全欠账迟早会兑现。
接下来建论坛用的库和账号:
CREATE DATABASE forum_db CHARACTER SET utf8mb4; CREATE USER 'forum_user'@'localhost' IDENTIFIED BY 'YourStrongPass'; GRANT ALL PRIVILEGES ON forum_db.* TO 'forum_user'@'localhost'; FLUSH PRIVILEGES;这里有两个细节值得展开。字符集必须指定 utf8mb4,现在用户的发帖内容很可能带 emoji,utf8 存不了 4 字节字符,不指定的话以后数据入库直接报错。授权语句里主机部分写的localhost,意味着这个账号只能从本机连接数据库。论坛的 PHP 和数据库跑在同一台机器上,这个限制足够了,还能避免数据库端口暴露在公网上被暴力破解。
PHP 方面,我用 dnf 一次性把常用扩展装齐:
dnf install -y php php-mysqlnd php-xml php-gd php-mbstring php-json php-fpm安装完用php -v确认版本。我遇到过 PHP 版本和论坛程序不兼容的情况,某些老论坛在 PHP 8 下会报函数废弃警告,甚至直接白屏。解决方案是装一个和论坛兼容的 PHP 版本,或者选一个对新 PHP 支持良好的论坛程序。练习环境里选新版论坛程序更为省心。
3.4 论坛程序安装与初始化
我把开源论坛程序源码包下载解压到/var/www/forum,解压以后先看目录结构。一般的 PHP 论坛都有一套目录约定:核心代码文件、配置文件、数据目录、插件目录、主题目录。我需要做的是:
tar -xf forum.tar.gz -C /var/www/forum cp /var/www/forum/config.sample.php /var/www/forum/config.php chown -R webuser:webuser /var/www/forum chmod -R 755 /var/www/forum chmod -R 775 /var/www/forum/data然后浏览器访问http://192.168.1.100/进入安装向导,按提示填数据库名、数据库用户、数据库密码、管理员账号信息。安装向导检测到哪些权限不满足、哪些 PHP 扩展缺失,会直接标红显示,这就是一个天然的"环境体检报告"。
第一次安装我卡在了"无法连接数据库",那时候数据库服务没起来。这种低级错误在练习阶段多犯几次其实是好事,会逼着你养成systemctl status mariadb先查服务的肌肉记忆。安装向导全部完成后,论坛显示安装成功,那一刻系统里所有组件才算真正联通了。
4. 安全加固与边界控制:SELinux 和防火墙的实战课
4.1 防火墙放行:firewalld 规则的三种配法
论坛对外提供服务,第一步是放行 80 端口。最省事的方式是直接放行服务名:
systemctl enable --now firewalld firewall-cmd --add-service=http --permanent firewall-cmd --reloadHTTP 服务有标准端口和标准服务名绑定,firewalld 里把 http 服务对应的就是 80 端口。用服务名而不是端口的好处是,以后服务名指向了不同端口,防火墙策略自动跟随,不用再改规则。
如果想严格控制来源 IP,比如只允许某网段访问论坛后台管理页,可以加 rich rule:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="8080" accept'这种"只让特定网段访问管理端口"的思路,在实践中比把管理端口暴露到全网段安全得多。论坛程序后台长期暴露在公网,每天会被扫描器盯上无数次,加一层源地址限制能挡掉绝大多数爆破尝试。
--permanent加--reload这套组合我特别想强调。只加规则不 permanent,重启机器就丢了;只 permanent 不 reload,规则不会应用到当前运行时环境,当下还是被挡住的。两个参数必须配合出现,这正好是 RHCSA 考试里常设的陷阱。
4.2 SELinux 布尔值与文件上下文:让论坛目录可写
SELinux 是 RHCSA 考试的重头戏,也是很多练习者最头疼的部分。刚装好论坛的时候,页面能打开但一直提示无法写入配置文件,论坛程序目录明明权限没问题啊。这时候如果你用getenforce看一眼,发现是Enforcing,那就基本能断定是 SELinux 在拦。
两条路:一条是直接关 SELinux 图省事,另一条是理解 SELinux 规则然后正确放行。我强烈建议你走第二条路。RHCSA 考试的明确要求是在 SELinux 开启状态下完成配置,考场上真有题直接考布尔值和文件上下文的配置,平时关掉 SELinux 等于裸考这部分。
首先,httpd 需要能写网页目录,对应的布尔值是:
setsebool -P httpd_unified onhttpd_unified 让 httpd 对网站目录拥有一致的访问权限。更精细的做法是只开httpd_builtin_scripting等特定布尔值,但论坛这种动态应用场景,httpd_unified更省心,又不至于把系统大门全开。
其次,httpd 需要连数据库。论坛页面在注册、发帖时会去连 MariaDB,SELinux 默认阻止 httpd 发起对外数据库连接:
setsebool -P httpd_can_network_connect_db on这个布尔值的作用就是允许 httpd 访问数据库端口,不开这个,PHP 怎么都连不上数据库。排这一步的坑要花不少时间,我在第一次部署时还挺意外的,没想到数据库层也有 SELinux 参与,认真学习一遍之后才算顺畅解决了。
还有一个文件上下文的坑。我手动把论坛目录放在了/var/www/forum,但/var/www下的新目录默认上下文可能是default_t,而不是 httpd 需要的httpd_sys_content_t。用ls -Z /var/www/forum就能看到上下文标签,明显不对。修正方式分两步:
semanage fcontext -a -t httpd_sys_content_t "/var/www/forum(/.*)?" restorecon -Rv /var/www/forumsemanage 把规则写进策略里,restorecon 按策略把现有文件的标签全部修正。这两步缺一不可,光用chcon改临时标签的话,重启后restorecon会把标签改回去,问题复发。正确做法就是 semanage 加 restorecon 的组合,这也是考试爱考的点。
换一个思路理解 SELinux:把它想象成一套独立的门禁系统,不管你的文件权限怎么放行,门禁这边还要再刷一次卡。很多排查到最后发现权限没问题、防火墙没问题,就是门禁没开卡。
4.3 账号级安全与 sudo 控制
拿论坛场景顺手还能练一下 sudo 策略。我喜欢建一个专用管理账号,授予有限的 sudo 权限,只允许管理特定的服务:
visudo在配置文件里加一行:
adminuser ALL=(ALL) /usr/bin/systemctl restart httpd, /usr/bin/systemctl restart mariadb, /usr/bin/systemctl status httpd, /usr/bin/systemctl status mariadb这样 adminuser 只能重启和查看 Web 和数据库服务,干不了别的。RHCSA 明确考 sudo 提权,而且原则就是"最小权限",能用systemctl restart绝不给ALL。练习这种配置,既能熟悉 visudo 语法,也能真正理解权限控制的意义。
数据库账号也要管。我把forum_user的密码只存在论坛配置文件和自己的密码管理工具里,数据库 root 账号密码平时绝不用来连业务。因为业务账号权限只要够读写论坛业务库就够了,root 账号留给真正的管理操作,两者分开,万一论坛程序被注入,数据库受影响面也小。
5. 数据、备份与自动化:让论坛能长期稳定跑
5.1 把数据库目录放到独立逻辑卷
论坛上线以后,最怕的是数据盘满了,数据库写不进去直接瘫痪。RHCSA 存储部分的考点正好可以在这里练透。我规划了一块独立的逻辑卷给数据库数据目录,这样即使系统盘挤满,数据库还有自己独立的空间。
步骤是:在虚拟机里给系统加一块硬盘,然后建 PV、VG、LV:
pvcreate /dev/sdb vgcreate vg_data /dev/sdb lvcreate -L 20G -n lv_mysql vg_data mkfs.xfs /dev/vg_data/lv_mysql mkdir -p /data/mysql echo "/dev/vg_data/lv_mysql /data/mysql xfs defaults 0 0" >> /etc/fstab mount -amount -a加上 /etc/fstab 的配置,确保重启以后逻辑卷能自动挂载。fstab 写错会导致系统起不来,这是整个搭建过程里最需要谨慎的步骤之一。写完以后一定执行mount -a当场验证,别等重启再发现错误。我踩过这个坑,fstab 里写错一个文件系统类型,重启后直接进入紧急模式,只能进单用户模式修复,非常耽误时间。
挂载好以后,把 MariaDB 的数据目录迁过去。这步操作复杂度高,但练一遍收获很大:
systemctl stop mariadb rsync -av /var/lib/mysql/ /data/mysql/然后修改/etc/my.cnf的 datadir 指向,再加上数据文件的 SELinux 上下文:
semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?" restorecon -Rv /data/mysql最后启动服务并验证:
systemctl start mariadb systemctl status mariadb这一步同时串起了存储、服务迁移、SELinux 三个考点,是这一整套练习里含金量最高的操作之一。执行时值得放慢速度,每一步都用echo $?或者 lsblk 检查预期结果,别急着往下冲。
5.2 日志分析与排障实战:三个常见问题速查
日志是排障的第一现场。论坛出现问题时我不会去猜,而是直接翻日志,按优先级排查:
| 问题现象 | 排查文件 | 常见原因 |
|---|---|---|
| 页面打不开,提示无法连接 | /var/log/httpd/error_log、journalctl -u httpd | 服务没启动、httpd 配置文件语法错误 |
| 页面能开但无法注册/发帖 | /var/log/php-fpm/www-error.log | PHP 扩展缺失、目录不可写、SELinux 拦截 |
| 出现数据库错误 | journalctl -u mariadb、/var/log/mariadb/mariadb.log | 数据库未启动、账号权限配置错误、磁盘写满 |
httpd 的日志文件路径有些版本在/var/log/httpd,有些在/etc/httpd/logs,不确定时用httpd -V | grep SERVER_LOG直接查。日志时间戳要和当前时间吻合,看到一堆旧日志别慌,先看最后几行。
有一次论坛突然开始 500 报错,httpd 日志没输出有效信息,我转向 journalctl 查 php-fpm 日志,才发现是 PHP 进程写一个小目录时权限不够。这种"日志逐层看"的思维是排障的核心心法:请求链路是浏览器到 httpd 到 PHP 到数据库,每一层都有对应日志,哪层断就在哪层找线索。
对了,还要养成定期看磁盘空间的习惯。df -h一眼扫过去,磁盘快满了提前清理,别等论坛挂掉再抢救。
5.3 自动备份:用 cron 和 tar 守住数据
论坛的备份我分成两块:程序和数据库分开备份。程序目录比较简单,直接 tar 打包;数据库要用 mysqldump 导出,因为直接拷贝数据文件在数据库运行状态下可能不一致。
写一个备份脚本:
#!/bin/bash BACKUP_DIR=/data/backup STAMP=$(date +%Y%m%d) mysqldump forum_db -uforum_user -p'YourStrongPass' > $BACKUP_DIR/forum_db_$STAMP.sql tar -czf $BACKUP_DIR/forum_www_$STAMP.tar.gz /var/www/forum find $BACKUP_DIR -type f -mtime +7 -delete脚本里加最后一行,保留最近 7 天的备份,自动清理更旧的备份,防止备份文件撑爆磁盘。然后配置计划任务:
crontab -e加入一行:
0 2 * * * /opt/backup_forum.sh每天凌晨 2 点执行备份。设置完以后用crontab -l验证配置生效,然后手动执行一次脚本,确认备份文件真实生成。这是我练习时踩出来的教训:光配置 crontab 不手动测一次,根本不知道脚本本身跑不跑得通。所以 cron 配好后,当场bash /opt/backup_forum.sh执行一遍、再ls -lh /data/backup检查结果,比什么都重要。
备份练熟以后再加一层"恢复演练":把备份文件拷贝到另一台干净环境,从零恢复一个论坛。只有真正走过恢复流程,你才能确认备份不是白做。这个习惯放到实际生产环境,价值超过任何理论。
6. 从练习走向考场:RHCSA 备考的几个关键提醒
6.1 练习节奏与自测方法
整个论坛搭完,我的建议是别急着去考试,先从头做一次"破坏性自测"。把虚拟机恢复到第一步之前的快照,然后不看笔记,完全凭记忆再搭一遍论坛。这次自测的时间目标设在 90 分钟以内,和 RHCSA 实战考试的时间压力保持一致。题干可以设置成标准操作任务,比如:
- 配置主机名和静态 IP,重启后保持生效
- 创建论坛用户和所属组,设置目录属主属权
- 安装 httpd、MariaDB、PHP,启动并设置开机自启
- 放行 HTTP 服务,配置 SELinux 相关策略
- 建立数据库并授权给论坛账号
- 备份论坛数据目录与数据库到指定路径
自测的结果能直接暴露哪些操作还是"看着会、做着忘",哪些细节经常重复出错。我在第二次自测时发现自己写 fstab 仍然手滑,于是专门把 fstab 格式抄了三遍才往系统里写,这个低级错误也因此得到了根治。
6.2 真机上最容易失分的隐藏细节
有四个细节,是论坛搭建过程中我反复踩且最可能影响考试成绩的,值得单独拿出来提醒。
第一个是重启验证。所有配置操作做完,一定要重启虚拟机验证服务自启、网络配置、挂载点、防火墙规则都还在。RHCSA 考试交卷前系统会被重启验证配置,这一条必须练出肌肉记忆。
第二个是 SELinux 和权限要分开查。出问题先看getenforce,然后ls -Z查上下文,确认这两个都没问题后再怀疑文件权限位。我曾经在论坛目录权限上反复改,最后发现问题出在文件上下文上,白白浪费了半小时。
第三个是路径必须精确到字符。配置 httpd 的 DocumentRoot 时,多一个斜杠或者少一层目录都会导致访问失败。考试时紧张容易犯这种低级错误,写完配置可以多花十秒钟httpd -t检查,配合ls确认目标目录真实存在。
第四个是服务重启后日志重读。改完配置不要急着看浏览器结果,先清空或记录当前日志行号,重启服务后直接看新增日志,定位效率高出好几倍。
6.3 论坛搭完之后还能怎么用
论坛跑通以后,这套环境不要删除,后续还能挖掘更多练习价值。我后续就是拿它做了这些延伸实验:把论坛的静态资源迁移到独立的分区并配置 Nginx 做反向代理;给论坛配置 TLS 证书来练 HTTPS 部署;设置日志轮转策略,防止论坛访问日志无限增长挤爆磁盘;配置逻辑卷扩容给磁盘满的论坛空间变大。
这些操作每一个都是 RHCSA 考点在真实业务场景中的自然延伸,比单做一条命令练习更能理解"为什么"。如果你有精力,也可以练习把论坛的数据库主从复制配起来,这能提前建立高可用架构的框架感。
我个人在实际操作中的体会是:搭论坛学到的不只是命令,更是排障思路。考试是限时的,压力之下能依靠的就是平时积累的排查路径和肌肉记忆。当你把论坛环境从头到尾搭过两遍以上,RHCSA 的操作型考题会有一种"就这"的感觉。最后再分享一个小技巧:自测时给自己出一个"服务莫名其妙挂了"的刁钻题,设置成 httpd 被手动 stop,然后要求自己在 5 分钟内从日志出发定位并恢复。这种练习做三遍,考场上遇到任何异常都不会慌。