- 挂载 / 卸载光盘
- 配置开机挂载光盘
- 准备本地软件仓库
- 使用本机目录作为软件源
- yum 查询软件
- yum 安装 / 卸载软件
- 快速构建 LAMP 平台
- 测试 LAMP 网站平台
- 系统控制 systemctl
- SELinux/Firewall 防护
1 挂载 / 卸载光盘
1.1 问题
本例要求在 Linux 主机中访问光盘设备,相关说明如下:
1)为虚拟机连接 openEuler 的 ISO 镜像文件
2)进入虚拟机系统,将光盘 / dev/cdrom 挂载到 / mnt/dvd / 目录
3)确认通过挂载点目录 / mnt/dvd / 可找到光盘中的文档
4)将已挂载到 /mnt/dvd/ 目录的光盘卸载
1.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:为 openEuler 虚拟机连接光盘
在 Windows 真机确认 openEuler 镜像文件,比如 E:\NTD2021_tools\阶段 3 软件素材\ISO 镜像\openEuler-20.03-LTS-SP1-x86_64-dvd.iso,双击打开(注意:需要安装有 7Zip、好压等压缩软件)确认其包含的文档,如图 - 1 所示。

图 - 1
选中已开启的 Linux 虚拟机,通过 VMware Workstation 菜单 “虚拟机” —>“设置”,打开虚拟机的设备设置界面。将虚拟机的“CD/DVD” 设备指定为 “使用 ISO 映像文件”,并确保已通过“浏览” 找到正确的 ISO 镜像文件,如图 - 2 所示,确保勾选“已连接”,然后确定。

图 - 2
步骤二:在 openEuler 虚拟机中挂载光盘
1)创建挂载点目录
1. \[root@svr203 ~\]\# mkdir /mnt/dvd2. \[root@svr203 ~\]\# df -hT /mnt/dvd/3. 文件系统 类型 容量 已用 可用 已用% 挂载点4. /dev/mapper/openeuler-root ext4 51G 2.9G 46G 6% /
2)执行挂载操作
1. \[root@svr203 ~\]\# mount /dev/cdrom /mnt/dvd2. mount: /mnt/dvd: WARNING: source write-protected, mounted read-only.
3)确认挂载记录
1. \[root@svr203 ~\]\# df -hT /mnt/dvd/2. 文件系统 类型 容量 已用 可用 已用% 挂载点3. /dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt/dvd
步骤三:访问光盘中的文档
确认通过挂载点目录 /mnt/dvd/ 可找到光盘中的文档
1. \[root@svr203 ~\]\# ls /mnt/dvd2. docs images ks repodata TRANS.TBL3. EFI isolinux Packages RPM-GPG-KEY-openEuler
步骤四:卸载光盘
卸载光盘,再次检查挂载点,已经只是一个空目录了。
1. \[root@svr203 ~\]\# umount /mnt/dvd2. \[root@svr203 ~\]\# ls /mnt/dvd3. \[root@svr203 ~\]\#
2 配置开机挂载光盘
2.1 问题
本例要求实现 Linux 系统在开机时自动挂载 openEuler 光盘,相关说明如下:
- 确认虚拟机上已正确连接 openEuler 光盘
- 配置每次开机后将光盘挂载到 / repos/openEuler / 目录
- 重启虚拟机,检查自动挂载效果
2.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:插入光盘设备
详细操作参见前一个案例。
步骤二:配置开机挂载光盘
1)创建挂载点
1. \[root@svr203 ~\]\# mkdir -p /repos/openEuler
2)修改 / etc/fstab 文件,添加挂载记录
1. \[root@svr203 ~\]\# vim /etc/fstab2. .. ..3. /dev/cdrom /repos/openEuler iso9660 defaults,ro 0 0
3)检查配置是否可用
1. \[root@svr203 ~\]\# mount -a3. \[root@svr203 ~\]\# df -hT /repos/openEuler/4. 文件系统 类型 容量 已用 可用 已用% 挂载点5. /dev/sr0 iso9660 4.2G 4.2G 0 100% /repos/openEuler
步骤三:重启并验证效果
1)重启 Linux 主机
1. \[root@svr203 ~\]\# reboot2. .. ..
2)重新登入系统,检查光盘挂载点
1. \[root@svr203 ~\]\# ls /repos/openEuler/2. docs images ks repodata TRANS.TBL3. EFI isolinux Packages RPM-GPG-KEY-openEuler
3 准备本地软件仓库
3.1 问题
本例作为前一个案例的结果确认,如果前一个案例中已经成功实现将光盘设备 / dev/cdrom 开机自动挂载到 / repos/openEuler 目录,那么本案例可以跳过。
如果前一个案例没有完成,可以按照本案例实现快速挂载,完成下列任务:
1)建仓库目录 /repos/openEuler
2)挂载 openEuler 光盘
3)确认仓库目录资源
3.2 步骤
实现此案例需要按照如下步骤进行。
1)确认虚拟机上已正确连接 openEuler 光盘
2)创建临时挂载点 /repos/openEuler
1. \[root@svr203 ~\]\# mkdir -p /repos/openEuler
3)挂载 openEuler 光盘
1. \[root@svr203 ~\]\# mount /dev/cdrom /repos/openEuler2. mount: /mnt/dvd: WARNING: source write-protected, mounted read-only.
3)确认挂载结果
1. \[root@svr203 ~\]\# ls /repos/openEuler/2. docs images ks repodata TRANS.TBL3. EFI isolinux Packages RPM-GPG-KEY-openEuler
4 使用本机目录作为软件源
4.1 问题
本例要求为 Linux 主机配置本机可访问的 yum 软件源,完成下列任务:
1)清理旧配置、不可用的配置
2)添加新的软件源,指向仓库目录 file:///repos/openEuler
3)清理 yum 缓存数据
4)列出软件仓库列表,确认结果
4.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:清理旧配置、不可用的配置
清理旧的配置,或者不可用 / 不使用的配置,避免干扰
1. \[root@svr203 ~\]\# mkdir /etc/yum.repos.d/backup2. \[root@svr203 ~\]\# mv /etc/yum.repos.d
步骤二:添加新的软件源,指向前一步准备的本地软件仓库
1)添加软件源
1. \[root@svr203 ~\]\# yum-config-manager --add-repo file:2. 添加仓库自:file:
2)确认结果
1. \[root@svr203 ~\]\# ls /etc/yum.repos.d/2. backup repo\_cos7dvd\_.repo
3)禁止检查软件签名
1. \[root@svr203 ~\]\# vim /etc/yum.conf2. \[main\]3. gpgcheck = 04. .. ..
步骤三:清理 yum 缓存数据
1. \[root@svr203 ~\]\# yum clean all2. 44 文件已删除
步骤四:列出软件仓库列表,确认结果
1)查看仓库的简单信息
1. \[root@svr203 ~\]\# yum repolist2. 仓库标识 仓库名称3. repos\_openEuler\_ created by dnf config-manager from file:4. \[root@svr203 ~\]#
2)查看仓库的详细信息
1. \[root@svr203 ~\]\# yum repolist2. 加载插件:builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate\_completion\_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync3. YUM version: 4.2.234. cachedir: /var/cache/dnf5. created by dnf config-manager f 286 MB/s | 3.1 MB 00:006. 上次元数据过期检查:0:00:01 前,执行于 2021年05月29日 星期六 15时58分15秒。7. Repo-id : repos\_openEuler\_8. Repo-name : created by dnf config-manager from9. : file:10. Repo-revision : 160866170711. Repo-updated : 2020年12月23日 星期三 02时28分27秒12. Repo-pkgs : 2,53113. Repo-available-pkgs: 2,53114. Repo-size : 3.2 G15. Repo-baseurl : file:16. Repo-expire : 172,800 秒 (最近 2021年05月29日 星期六17. : 15时58分15秒)18. Repo-filename : /etc/yum.repos.d/repos\_openEuler\_.repo19. Total packages: 2,53121. \[root@svr203 ~\]#
5 yum 查询软件
5.1 问题
本例要求学会使用 yum 命令查询软件包信息,完成下列任务:
1)列出软件包名称、版本信息
- 列出所有已安装的软件、所有未安装但软件源能提供的软件包
- 检查软件 httpd、rar 是否已经安装
2)查询软件包描述信息
- 了解软件包 kernel、bash 的用途
3)查询哪些软件包能提供指定的程序 / 文件
- 查询命令程序 vim、ifconfig 分别由哪个软件包提供
5.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:列出软件包名称、版本信息
1)列出所有已安装的软件
1. \[root@svr203 ~\]\# yum list installed2. .. ..3. 已安装的软件包4. CUnit.x86_64 2.1.3-22.oe1 @anaconda5. GeoIP.x86_64 1.6.12-5.oe1 @anaconda6. GeoIP-GeoLite-data.noarch 2018.06-3.oe1 @anaconda7. ModemManager-glib.x86_64 1.14.0-2.oe1 @anaconda8. NetworkManager.x86_64 1:1.26.2-4.oe1 @anaconda9. NetworkManager-config-server.noarch 1:1.26.2-4.oe1 @anaconda10. NetworkManager-help.noarch 1:1.26.2-4.oe1 @anaconda11. NetworkManager-libnm.x86_64 1:1.26.2-4.oe1 @anaconda12. PackageKit.x86_64 1.1.12-9.oe1 @anaconda14. .. ..16. xmlrpc-c.x86_64 1.51.06-1.oe1 @anaconda17. xorg-x11-proto-devel.noarch 2019.1-1.oe1 @anaconda18. xz.x86_64 5.2.5-1.oe1 @anaconda19. xz-libs.x86_64 5.2.5-1.oe1 @anaconda20. yajl.x86_64 2.1.0-12.oe1 @anaconda21. yum.noarch 4.2.23-3.oe1 @anaconda22. zip.x86_64 3.0-26.oe1 @anaconda23. zlib.x86_64 1.2.11-17.oe1 @anaconda24. zlib-devel.x86_64 1.2.11-17.oe1 @anaconda25. zstd.x86_64 1.4.5-0.oe1 @anaconda27. \[root@svr203 ~\]\#
3)检查软件 httpd、rar 是否已经安装
1. \[root@svr203 ~\]\# yum list httpd2. .. ..3. 可安装的软件包4. httpd.x86_64 2.4.43-4.oe1 repos\_openEuler\_6. \[root@svr203 ~\]\# yum list rar7. .. ..8. 错误:没有匹配的软件包可以列出
步骤二:查询软件包描述信息
1)了解软件包 kernel 的用途
软件包 kernel 主要提供 Linux 的运行内核程序:
1. \[root@svr203 ~\]\# yum info kernel2. .. ..3. 已安装的软件包4. Name : kernel5. Version : 4.19.906. 发布 : 2012.5.0.0054.oe17. Architecture : x86_648. Size : 208 M9. 源 : kernel-4.19.90-2012.5.0.0054.oe1.src.rpm10. Repository : @System11. 来自仓库 : anaconda12. Summary : Linux Kernel13. URL : http:14. 协议 : GPLv215. Description : The Linux Kernel, the operating system core itself.17. \[root@svr203 ~\]#
2)了解软件包 bash 的用途
软件包 bash 主要为 Linux 系统提供命令行解释器程序(/bin/bash):
1. \[root@svr203 ~\]\# yum info bash2. .. ..3. 已安装的软件包4. Name : bash5. Version : 5.06. 发布 : 14.oe17. Architecture : x86_648. Size : 5.8 M9. 源 : bash-5.0-14.oe1.src.rpm10. Repository : @System11. 来自仓库 : anaconda12. Summary : It is the Bourne Again Shell13. URL : https:14. 协议 : GPLv315. Description : Bash is the GNU Project's shell. Bash is the16. : Bourne Again SHell. Bash is an sh-compatible17. : shell that incorporates useful features from the18. : Korn shell (ksh) and C shell (csh). It is19. : intended to conform to the IEEE POSIX P1003.2/ISO20. : 9945.2 Shell and Tools standard. It offers21. : functional improvements over sh for both22. : programming and interactive use. In addition,23. : most sh scripts can be run by Bash without24. : modification.26. \[root@svr203 ~\]#
步骤三:查询哪些软件包能提供指定的程序 / 文件
1)查询命令程序 vim 由哪个软件包提供
可以获知对应的软件包名称是 vim-enhanced:
1. \[root@svr203 ~\]\# yum provides "*bin/vim"2. .. ..3. vim-enhanced-2:8.2-1.oe1.x86_64 : This is a package containing4. : enhanced vim editor.5. 仓库 :@System6. 匹配来源:7. 提供 : /usr/bin/vim9. vim-enhanced-2:8.2-1.oe1.x86_64 : This is a package containing10. : enhanced vim editor.11. 仓库 :repos\_openEuler\_12. 匹配来源:13. 提供 : /usr/bin/vim15. \[root@svr203 ~\]#
2)查询命令程序 ifconfig 由哪个软件包提供
可以获知对应的软件包名称是 net-tools:
1. \[root@svr203 ~\]\# yum provides "*/ifconfig"2. .. ..3. atune-0.3-0.2.oe1.x86_64 : AI auto tuning system4. 仓库 :repos\_openEuler\_5. 匹配来源:6. 文件名 :/usr/libexec/atuned/scripts/ifconfig8. net-tools-2.0-0.54.oe1.x86_64 : Important Programs for9. : Networking10. 仓库 :@System11. 匹配来源:12. 文件名 :/usr/sbin/ifconfig14. net-tools-2.0-0.54.oe1.x86_64 : Important Programs for15. : Networking16. 仓库 :repos\_openEuler\_17. 匹配来源:18. 文件名 :/usr/sbin/ifconfig20. \[root@svr203 ~\]#
6 yum 安装 / 卸载软件
6.1 问题
本例要求学会使用 yum 命令安装及卸载应用软件,完成下列任务。
1)安装 / 卸载软件
- 安装 httpd 软件包,观察执行过程
- 卸载 httpd 软件包,观察卸载结果
2)通过重装软件修复误删的命令程序
- 删除文件 /usr/bin/vim ,检查 vim 编辑器是否还可用
- 使用 yum 重装 vim-enhanced 软件包,再次检查 vim 编辑器是否可用
6.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:安装 / 卸载软件
1)安装 httpd 软件包,观察执行过程
1. \[root@svr203 ~\]\# yum -y install httpd2. .. ..3. ================================================================4. Package Arch Version Repository Size5. ================================================================6. 安装:7. httpd x86_64 2.4.43-4.oe1 repos\_openEuler\_ 1.2 M8. 安装依赖关系:9. apr x86_64 1.7.0-2.oe1 repos\_openEuler\_ 108 k10. apr-util x86_64 1.6.1-12.oe1 repos\_openEuler\_ 109 k11. httpd-filesystem noarch 2.4.43-4.oe1 repos\_openEuler\_ 10 k12. httpd-help noarch 2.4.43-4.oe1 repos\_openEuler\_ 2.4 M13. httpd-tools x86_64 2.4.43-4.oe1 repos\_openEuler\_ 68 k14. mod\_http2 x86\_64 1.15.13-1.oe1 repos\_openEuler\_ 125 k16. 事务概要17. ================================================================18. 安装 7 软件包20. 总计:4.0 M21. 安装大小:13 M22. 下载软件包:23. 运行事务检查24. 事务检查成功。25. 运行事务测试26. 事务测试成功。27. 运行事务28. 准备中 : 1/129. 运行脚本: apr-1.7.0-2.oe1.x86_64 1/730. 安装 : apr-1.7.0-2.oe1.x86_64 1/731. 运行脚本: apr-1.7.0-2.oe1.x86_64 1/732. 运行脚本: apr-util-1.6.1-12.oe1.x86_64 2/733. 安装 : apr-util-1.6.1-12.oe1.x86_64 2/734. 运行脚本: apr-util-1.6.1-12.oe1.x86_64 2/735. 安装 : httpd-tools-2.4.43-4.oe1.x86_64 3/736. 运行脚本: httpd-filesystem-2.4.43-4.oe1.noarch 4/737. 安装 : httpd-filesystem-2.4.43-4.oe1.noarch 4/738. 安装 : httpd-help-2.4.43-4.oe1.noarch 5/739. 安装 : mod_http2-1.15.13-1.oe1.x86_64 6/740. 安装 : httpd-2.4.43-4.oe1.x86_64 7/741. 运行脚本: httpd-2.4.43-4.oe1.x86_64 7/742. 验证 : apr-1.7.0-2.oe1.x86_64 1/743. 验证 : apr-util-1.6.1-12.oe1.x86_64 2/744. 验证 : httpd-2.4.43-4.oe1.x86_64 3/745. 验证 : httpd-filesystem-2.4.43-4.oe1.noarch 4/746. 验证 : httpd-help-2.4.43-4.oe1.noarch 5/747. 验证 : httpd-tools-2.4.43-4.oe1.x86_64 6/748. 验证 : mod_http2-1.15.13-1.oe1.x86_64 7/750. 已安装:51. apr-1.7.0-2.oe1.x86_6452. apr-util-1.6.1-12.oe1.x86_6453. httpd-2.4.43-4.oe1.x86_6454. httpd-filesystem-2.4.43-4.oe1.noarch55. httpd-help-2.4.43-4.oe1.noarch56. httpd-tools-2.4.43-4.oe1.x86_6457. mod_http2-1.15.13-1.oe1.x86_6459. 完毕!
2)卸载 httpd 软件包,再次检查卸载结果
1. \[root@svr203 ~\]\# yum -y remove httpd2. .. ..3. 已移除:4. apr-1.7.0-2.oe1.x86_645. apr-util-1.6.1-12.oe1.x86_646. httpd-2.4.43-4.oe1.x86_647. httpd-help-2.4.43-4.oe1.noarch8. httpd-tools-2.4.43-4.oe1.x86_649. mod_http2-1.15.13-1.oe1.x86_6411. 完毕!
3)卸载 httpd 软件包,再次检查卸载结果
1. \[root@svr203 ~\]\# yum list httpd2. .. ..3. 可安装的软件包4. httpd.x86_64 2.4.43-4.oe1 repos\_openEuler\_
步骤二:通过重装软件修复误删的命令程序
1)删除文件 /usr/bin/vim ,检查 vim 编辑器是否还可用
1. \[root@svr203 ~\]\# rm -rf /usr/bin/vim2. \[root@svr203 ~\]\# vim /root/a.txt3. -bash: /usr/bin/vim: 没有那个文件或目录
2)使用 yum 安装 vim-enhanced 软件包,再次检查 vim 编辑器是否可用
尝试正常安装 vim-enhanced 软件包,会发现 vim 仍然不可用(因为此软件包已经安装过,直接 install 不会做更改)。
1. \[root@svr203 ~\]\# yum -y install vim-enhanced2. .. ..3. 软件包 vim-enhanced-2:8.2-1.oe1.x86_64 已安装。4. 依赖关系解决。5. 无需任何处理。6. 完毕!8. \[root@svr203 ~\]\# vim /root/a.txt9. -bash: /usr/bin/vim: 没有那个文件或目录
3)使用 yum 重装 vim-enhanced 软件包,再次检查 vim 编辑器是否可用
1. \[root@svr203 ~\]\# yum -y reinstall vim-enhanced2. .. ..3. 依赖关系解决。4. ================================================================5. Package Arch Version Repository Size6. ================================================================7. 重新安装:8. vim-enhanced x86_64 2:8.2-1.oe1 repos\_openEuler\_ 1.4 M10. 事务概要11. ================================================================13. 总计:1.4 M14. 安装大小:3.1 M15. 下载软件包:16. 运行事务检查17. 事务检查成功。18. 运行事务测试19. 事务测试成功。20. 运行事务21. 准备中 : 1/122. 重新安装: vim-enhanced-2:8.2-1.oe1.x86_64 1/223. 清理 : vim-enhanced-2:8.2-1.oe1.x86_64 2/224. 验证 : vim-enhanced-2:8.2-1.oe1.x86_64 1/225. 验证 : vim-enhanced-2:8.2-1.oe1.x86_64 2/227. 已重装:28. vim-enhanced-2:8.2-1.oe1.x86_6430. 完毕!32. \[root@svr203 ~\]\# vim /root/a.txt33. \[root@svr203 ~\]#
7 快速构建 LAMP 平台
7.1 问题
本例要求基于 Linux 主机快速构建 LAMP 动态网站平台,并启用相关系统服务,完成下列操作:
1)安装 LAMP 平台各组件
- 安装好软件 httpd、mariadb-server、php-fpm、php-mysqlnd
- 确认安装结果
2)启用 LAMP 网站平台
- 开启 httpd、mariadb、php-fpm 服务
- 停止 firewalld 服务
3)从浏览器访问 http:// 虚拟机的 IP 地址 / ,能看到标配网页
7.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:安装 LAMP 平台各组件
1)上传 lamp_oe1_pkgs / 软件包素材目录到 / root / 目录下,确认结果
1. \[root@svr203 ~\]\# ls /root/lamp\_oe1\_pkgs/2. apr-1.7.0-2.oe1.x86_64.rpm3. apr-util-1.6.1-12.oe1.x86_64.rpm4. httpd-2.4.43-4.oe1.x86_64.rpm5. httpd-filesystem-2.4.43-4.oe1.noarch.rpm6. httpd-help-2.4.43-4.oe1.noarch.rpm7. httpd-tools-2.4.43-4.oe1.x86_64.rpm8. mariadb-10.3.9-9.oe1.x86_64.rpm9. mariadb-backup-10.3.9-9.oe1.x86_64.rpm10. mariadb-common-10.3.9-9.oe1.x86_64.rpm11. mariadb-errmessage-10.3.9-9.oe1.x86_64.rpm12. mariadb-gssapi-server-10.3.9-9.oe1.x86_64.rpm13. mariadb-server-10.3.9-9.oe1.x86_64.rpm14. mod_http2-1.15.13-1.oe1.x86_64.rpm15. nginx-filesystem-1.16.1-7.oe1.noarch.rpm16. perl-DBD-MySQL-4.046-6.oe1.x86_64.rpm17. perl-DBI-1.643-1.oe1.x86_64.rpm18. php-common-7.2.10-9.oe1.x86_64.rpm19. php-fpm-7.2.10-9.oe1.x86_64.rpm20. php-mysqlnd-7.2.10-9.oe1.x86_64.rpm21. php-pdo-7.2.10-9.oe1.x86_64.rpm23. \[root@svr203 ~\]#
注意:如果使用官网源,可以直接执行 “yum -y install httpd mariadb-server php-fpm php-mysqlnd” 命令来安装。
2)安装好软件 httpd、mariadb-server、php-fpm、php-mysqlnd
1. \[root@svr203 ~\]\# yum -y install /root/lamp\_oe1\_pkgs39. [root@svr203](mailto:root@svr203)
3)确认安装结果
1. \[root@svr203 ~\]\# yum list httpd mariadb-server php-fpm php-mysqlnd2. .. ..3. 已安装的软件包4. httpd.x86_64 2.4.43-4.oe1 @repos\_openEuler\_5. mariadb-server.x86_64 3:10.3.9-9.oe1 @@commandline6. php-fpm.x86_64 7.2.10-9.oe1 @@commandline7. php-mysqlnd.x86_64 7.2.10-9.oe1 @@commandline
步骤二:启用 LAMP 网站平台
1)开启系统服务 httpd、mariadb
主要包括:Web 服务 httpd、数据库服务 mariadb、PHP 网页解析服务 php-fpm。
1. \[root@svr203 ~\]\# systemctl restart httpd mariadb php-fpm2. .. ..
2)关闭 firewalld 防火墙服务,并禁止其开机自启动
1. \[root@svr203 ~\]\# systemctl stop firewalld
步骤三:从浏览器访问 http:// 虚拟机的 IP 地址 / ,能看到标配网页
可以从 Win10 真机的浏览器访问http:// 虚拟机的 IP 地址 / ,如图 - 3 所示。

图 - 3
8 测试 LAMP 网站平台
8.1 问题
本例要求测试 LAMP 动态网站平台,确保可以支撑 PHP 应用及数据库,完成下列任务。
1)测试 PHP 网页解析
- 编写网页 /var/www/html/test1.php
- 访问 http:// 虚拟机的 IP 地址 / test1.php ,能显示 PHP 环境信息
2)测试 PHP 访问数据库
- 编写网页 /var/www/html/test2.php
- 访问 http:// 虚拟机的 IP 地址 / test2.php ,能报告数据库连接状态信息
8.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:测试 PHP 网页解析
1)编写网页 /var/www/html/test1.php
1. \[root@svr203 ~\]\# vim /var/www/html/test1.php2. <?php3. phpinfo();4. ?>
2)访问 http:// 虚拟机地址 / test1.php ,能显示 PHP 环境信息
通过 Web 浏览器访问 http://192.168.10.203/test1.php ,可以看到 PHP 环境信息,如图 - 4 所示。

图 - 4
步骤二:测试 PHP 访问数据库
1)编写网页 /var/www/html/test2.php
在 Web 服务器的网页目录下新建另一个测试网页 test2.php,其中本机的 mariadb 数据库服务未做配置时,管理员账号为 root、密码为空。
1. \[root@svr203 ~\]\# vim /var/www/html/test2.php2. <?php $mysqli = new mysqli('localhost','root','','mysql');4. if (mysqli\_connect\_errno()){ echo 'Failure!!'; }6. else echo 'Success!!';
2)访问 http:// 虚拟机地址 / test2.php ,能报告数据库连接状态信息
通过 Web 浏览器访问 http://192.168.10.203/test2.php ,可以看到数据库连接的反馈信息,正常结果页面应显示 “Success !!”,如图 - 5 所示。

图 - 5
9 系统控制 systemctl
9.1 问题
本例要求熟练掌握 Linux 系统中 systemctl 工具的基本使用方法,完成下列任务。
1)停止 httpd 服务,查看 httpd 服务的状态
2)启动 firewalld 服务,查看 firewalld 服务的状态
3)允许 httpd 服务开机自启,禁止 firewalld 服务开机自启
4)重启主机后,确认 httpd、firewalld 服务的状态
5)最后把 httpd、mariadb、php-fpm 服务都设置为开机自启
9.2 步骤
实现此案例需要按照如下步骤进行。
1)停止 httpd 服务,查看 httpd 服务的状态
停止 httpd 服务:
1. \[root@svr203 ~\]\# systemctl stop httpd
查看 httpd 服务的状态,注意 inactive(dead) 表示已经停止运行:
1. \[root@svr203 ~\]\# systemctl status httpd2. ● httpd.service - The Apache HTTP Server3. Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)4. Drop-In: /usr/lib/systemd/system/httpd.service.d5. └─php-fpm.conf6. Active: inactive (dead) since Wed 2021-11-17 17:31:40 CST; 3s ago7. Docs: man:httpd.service(8)8. Process: 2871187 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)9. Process: 1120 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS)10. Main PID: 1120 (code=exited, status=0/SUCCESS)11. Status: "Total requests: 3623; Idle/Busy workers 100/0;Requests/sec: 0.000647; Bytes served/sec: 44 B/sec"13. 11月 14 03:51:01 f0-svr1.example.com systemd\[1\]: Reloading The Apache HTTP Server.14. 11月 14 03:51:01 f0-svr1.example.com httpd\[1120\]: Server configured, listening on: port 8015. 11月 14 03:51:01 f0-svr1.example.com systemd\[1\]: Reloaded The Apache HTTP Server.16. 11月 17 17:31:39 f0-svr1.example.com systemd\[1\]: Stopping The Apache HTTP Server...17. 11月 17 17:31:40 f0-svr1.example.com systemd\[1\]: Stopped The Apache HTTP Server.18. Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.20. \[root@svr203 ~\]\#
2)启动 firewalld 服务,查看 firewalld 服务的状态
启动 firewalld 服务(防火墙):
1. \[root@svr203 ~\]\# systemctl start firewalld2. Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
查看 firewalld 服务的状态,注意 active(running) 表示正在运行:
1. \[root@f0-svr1 ~\]\# systemctl status firewalld2. ● firewalld.service - firewalld - dynamic firewall daemon3. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)4. Active: active (running) since Wed 2021-11-17 17:28:56 CST; 1s ago5. Docs: man:firewalld(1)6. Main PID: 3041422 (firewalld)7. Tasks: 3 (limit: 100598)8. Memory: 26.9M9. CGroup: /system.slice/firewalld.service10. ├─3041422 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid11. └─3041480 /usr/sbin/iptables-restore -w –n12. .. ..13. \[root@svr203 ~\]\#
3)允许 httpd 服务开机自启,禁止 firewalld 服务开机自启
允许 httpd 服务开机自启:
1. \[root@svr203 ~\]\# systemctl enable httpd2. Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.4. \[root@svr203 ~\]\# systemctl is-enabled httpd5. enabled
禁止 firewalld 服务开机自启:
1. \[root@svr203 ~\]\# systemctl disable firewalld2. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.3. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.5. \[root@svr203 ~\]\# systemctl is-enabled firewalld6. disabled
4)重启主机后,确认 httpd、firewalld 服务的状
执行 reboot 快速重启。
1. \[root@svr203 ~\]\# reboot2. .. ..
检查 httpd 服务应该已经处于 running 状态,说明开机自启已经实现。
1. \[root@svr203 ~\]\# systemctl status httpd2. ● httpd.service - The Apache HTTP Server3. Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor prese>4. Drop-In: /usr/lib/systemd/system/httpd.service.d5. └─php-fpm.conf6. Active: active (running) since Sat 2021-05-29 18:48:22 CST; 3s ago7. Docs: man:httpd.service(8)8. Main PID: 8166 (httpd)9. Status: "Processing requests..."10. Tasks: 21311. Memory: 14.7M12. CGroup: /system.slice/httpd.service13. ├─8166 /usr/sbin/httpd -DFOREGROUND14. ├─8167 /usr/sbin/httpd -DFOREGROUND15. ├─8168 /usr/sbin/httpd -DFOREGROUND16. ├─8169 /usr/sbin/httpd -DFOREGROUND17. └─8170 /usr/sbin/httpd -DFOREGROUND19. 5月 29 18:48:22 svr203.tedu.cn systemd\[1\]: Starting The Apache HTTP Server...20. 5月 29 18:48:22 svr203.tedu.cn httpd\[8166\]: \[Sat May 29 18:48:22.581742 2021\]21. 5月 29 18:48:22 svr203.tedu.cn systemd\[1\]: Started The Apache HTTP Server.23. \[root@svr203 ~\]#
同样,防火墙服务 firewalld 已经处于 dead 状态,说明禁止开机自启已经实现。
1. \[root@svr203 ~\]\# systemctl status firewalld2. ● firewalld.service - firewalld - dynamic firewall daemon3. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)4. Active: inactive (dead)5. Docs: man:firewalld(1)7. \[root@svr203 ~\]#
5)最后把 httpd、mariadb、php-fpm 服务都设置为开机自启
1. \[root@svr203 ~\]\# systemctl enable httpd mariadb php-fpm2. .. ..
10 SELinux/Firewall 防护
10.1 问题
本例要求掌握 SELinux 保护机制、Firewall 防火墙的状态控制,相关说明如下。
一方面,学会转换 SELinux 运行状态,一般来说服务器可能用不到 SELinux 保护机制,这种情况下需要关闭 SELinux 的 Enforcing 强制模式,避免带来一些麻烦。
另一方面,可以关闭防火墙服务,并设置以后每次开机后不要自动启动 firewalld 服务。
最后重启系统,再次登入,检查 SELinux 状态、防火墙状态,确认已经关闭。
10.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:关闭 SELinux 系统防护
1)立即停用(设为许可模式)
只要 SELinux 的运行状态不是 Disabled,也可以使用 setenforce 1|0 在 Enforcing 和 Permissive 状态之间立即切换。
1. \[root@svr203 ~\]\# setenforce 02. \[root@svr203 ~\]\# getenforce3. Permissive
2)设置开机后禁用 SELinux
需要修改 / etc/selinux/config 配置文件。
1. \[root@svr203 ~\]\# vim /etc/selinux/config2. \# This file controls the state of SELinux on the system.3. \# SELINUX= can take one of these three values:4. \# enforcing - SELinux security policy is enforced.5. \# permissive - SELinux prints warnings instead of enforcing.6. \# disabled - No SELinux policy is loaded.7. SELINUX=disabled8. \# SELINUXTYPE= can take one of three values:9. \# targeted - Targeted processes are protected,10. \# minimum - Modification of targeted policy. Only selected processes are protected.11. \# mls - Multi Level Security protection.12. SELINUXTYPE=targeted
步骤二:关闭防火墙网络防护
1)立即停止防火墙服务
1. \[root@svr203 ~\]\# systemctl stop firewalld2. \[root@svr203 ~\]#
2)设置每次开机后不自动运行 firewalld 服务
如果所在网络环境已经部署了专门的硬件防火墙,那么通常会将 Linux 服务器上的防火墙服务关闭,只要设置 firewalld 服务不要开机自启动就行。
1. \[root@svr203 ~\]\# systemctl disable firewalld2. Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.3. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.5. \[root@control ~\]\# systemctl is-enabled firewalld6. disabled
步骤三:重启系统,检查 SELinux 状态、防火墙状态
1)重启系统
2)重新登入系统,检查 SELinux 和防火墙状态
1. \[root@svr203 ~\]\# getenforce2. Disabled4. \[root@svr203 ~\]\# systemctl status firewalld5. ● firewalld.service - firewalld - dynamic firewall daemon6. Loaded: loaded (/usr/lib/systemd/system/firewalld.ser>7. Active: inactive (dead)8. Docs: man:firewalld(1)9. .. ..
https://tts.tmooc.cn/ttsPage/NTD/NTDTN202109/LNXSEC/DAY03/CASE/01/index.html
