- 挂载 / 卸载光盘
- 配置开机挂载光盘
- 准备本地软件仓库
- 使用本机目录作为软件源
- 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/dvd
2. \[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/dvd
2. 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/dvd
2. docs images ks repodata TRANS.TBL
3. EFI isolinux Packages RPM-GPG-KEY-openEuler
步骤四:卸载光盘
卸载光盘,再次检查挂载点,已经只是一个空目录了。
1. \[root@svr203 ~\]\# umount /mnt/dvd
2. \[root@svr203 ~\]\# ls /mnt/dvd
3. \[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/fstab
2. .. ..
3. /dev/cdrom /repos/openEuler iso9660 defaults,ro 0 0
3)检查配置是否可用
1. \[root@svr203 ~\]\# mount -a
3. \[root@svr203 ~\]\# df -hT /repos/openEuler/
4. 文件系统 类型 容量 已用 可用 已用% 挂载点
5. /dev/sr0 iso9660 4.2G 4.2G 0 100% /repos/openEuler
步骤三:重启并验证效果
1)重启 Linux 主机
1. \[root@svr203 ~\]\# reboot
2. .. ..
2)重新登入系统,检查光盘挂载点
1. \[root@svr203 ~\]\# ls /repos/openEuler/
2. docs images ks repodata TRANS.TBL
3. 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/openEuler
2. mount: /mnt/dvd: WARNING: source write-protected, mounted read-only.
3)确认挂载结果
1. \[root@svr203 ~\]\# ls /repos/openEuler/
2. docs images ks repodata TRANS.TBL
3. 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/backup
2. \[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.conf
2. \[main\]
3. gpgcheck = 0
4. .. ..
步骤三:清理 yum 缓存数据
1. \[root@svr203 ~\]\# yum clean all
2. 44 文件已删除
步骤四:列出软件仓库列表,确认结果
1)查看仓库的简单信息
1. \[root@svr203 ~\]\# yum repolist
2. 仓库标识 仓库名称
3. repos\_openEuler\_ created by dnf config-manager from file:
4. \[root@svr203 ~\]#
2)查看仓库的详细信息
1. \[root@svr203 ~\]\# yum repolist
2. 加载插件:builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate\_completion\_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
3. YUM version: 4.2.23
4. cachedir: /var/cache/dnf
5. created by dnf config-manager f 286 MB/s | 3.1 MB 00:00
6. 上次元数据过期检查:0:00:01 前,执行于 2021年05月29日 星期六 15时58分15秒。
7. Repo-id : repos\_openEuler\_
8. Repo-name : created by dnf config-manager from
9. : file:
10. Repo-revision : 1608661707
11. Repo-updated : 2020年12月23日 星期三 02时28分27秒
12. Repo-pkgs : 2,531
13. Repo-available-pkgs: 2,531
14. Repo-size : 3.2 G
15. Repo-baseurl : file:
16. Repo-expire : 172,800 秒 (最近 2021年05月29日 星期六
17. : 15时58分15秒)
18. Repo-filename : /etc/yum.repos.d/repos\_openEuler\_.repo
19. Total packages: 2,531
21. \[root@svr203 ~\]#
5 yum 查询软件
5.1 问题
本例要求学会使用 yum 命令查询软件包信息,完成下列任务:
1)列出软件包名称、版本信息
- 列出所有已安装的软件、所有未安装但软件源能提供的软件包
- 检查软件 httpd、rar 是否已经安装
2)查询软件包描述信息
- 了解软件包 kernel、bash 的用途
3)查询哪些软件包能提供指定的程序 / 文件
- 查询命令程序 vim、ifconfig 分别由哪个软件包提供
5.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:列出软件包名称、版本信息
1)列出所有已安装的软件
1. \[root@svr203 ~\]\# yum list installed
2. .. ..
3. 已安装的软件包
4. CUnit.x86_64 2.1.3-22.oe1 @anaconda
5. GeoIP.x86_64 1.6.12-5.oe1 @anaconda
6. GeoIP-GeoLite-data.noarch 2018.06-3.oe1 @anaconda
7. ModemManager-glib.x86_64 1.14.0-2.oe1 @anaconda
8. NetworkManager.x86_64 1:1.26.2-4.oe1 @anaconda
9. NetworkManager-config-server.noarch 1:1.26.2-4.oe1 @anaconda
10. NetworkManager-help.noarch 1:1.26.2-4.oe1 @anaconda
11. NetworkManager-libnm.x86_64 1:1.26.2-4.oe1 @anaconda
12. PackageKit.x86_64 1.1.12-9.oe1 @anaconda
14. .. ..
16. xmlrpc-c.x86_64 1.51.06-1.oe1 @anaconda
17. xorg-x11-proto-devel.noarch 2019.1-1.oe1 @anaconda
18. xz.x86_64 5.2.5-1.oe1 @anaconda
19. xz-libs.x86_64 5.2.5-1.oe1 @anaconda
20. yajl.x86_64 2.1.0-12.oe1 @anaconda
21. yum.noarch 4.2.23-3.oe1 @anaconda
22. zip.x86_64 3.0-26.oe1 @anaconda
23. zlib.x86_64 1.2.11-17.oe1 @anaconda
24. zlib-devel.x86_64 1.2.11-17.oe1 @anaconda
25. zstd.x86_64 1.4.5-0.oe1 @anaconda
27. \[root@svr203 ~\]\#
3)检查软件 httpd、rar 是否已经安装
1. \[root@svr203 ~\]\# yum list httpd
2. .. ..
3. 可安装的软件包
4. httpd.x86_64 2.4.43-4.oe1 repos\_openEuler\_
6. \[root@svr203 ~\]\# yum list rar
7. .. ..
8. 错误:没有匹配的软件包可以列出
步骤二:查询软件包描述信息
1)了解软件包 kernel 的用途
软件包 kernel 主要提供 Linux 的运行内核程序:
1. \[root@svr203 ~\]\# yum info kernel
2. .. ..
3. 已安装的软件包
4. Name : kernel
5. Version : 4.19.90
6. 发布 : 2012.5.0.0054.oe1
7. Architecture : x86_64
8. Size : 208 M
9. 源 : kernel-4.19.90-2012.5.0.0054.oe1.src.rpm
10. Repository : @System
11. 来自仓库 : anaconda
12. Summary : Linux Kernel
13. URL : http:
14. 协议 : GPLv2
15. Description : The Linux Kernel, the operating system core itself.
17. \[root@svr203 ~\]#
2)了解软件包 bash 的用途
软件包 bash 主要为 Linux 系统提供命令行解释器程序(/bin/bash):
1. \[root@svr203 ~\]\# yum info bash
2. .. ..
3. 已安装的软件包
4. Name : bash
5. Version : 5.0
6. 发布 : 14.oe1
7. Architecture : x86_64
8. Size : 5.8 M
9. 源 : bash-5.0-14.oe1.src.rpm
10. Repository : @System
11. 来自仓库 : anaconda
12. Summary : It is the Bourne Again Shell
13. URL : https:
14. 协议 : GPLv3
15. Description : Bash is the GNU Project's shell. Bash is the
16. : Bourne Again SHell. Bash is an sh-compatible
17. : shell that incorporates useful features from the
18. : Korn shell (ksh) and C shell (csh). It is
19. : intended to conform to the IEEE POSIX P1003.2/ISO
20. : 9945.2 Shell and Tools standard. It offers
21. : functional improvements over sh for both
22. : programming and interactive use. In addition,
23. : most sh scripts can be run by Bash without
24. : 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 containing
4. : enhanced vim editor.
5. 仓库 :@System
6. 匹配来源:
7. 提供 : /usr/bin/vim
9. vim-enhanced-2:8.2-1.oe1.x86_64 : This is a package containing
10. : enhanced vim editor.
11. 仓库 :repos\_openEuler\_
12. 匹配来源:
13. 提供 : /usr/bin/vim
15. \[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 system
4. 仓库 :repos\_openEuler\_
5. 匹配来源:
6. 文件名 :/usr/libexec/atuned/scripts/ifconfig
8. net-tools-2.0-0.54.oe1.x86_64 : Important Programs for
9. : Networking
10. 仓库 :@System
11. 匹配来源:
12. 文件名 :/usr/sbin/ifconfig
14. net-tools-2.0-0.54.oe1.x86_64 : Important Programs for
15. : Networking
16. 仓库 :repos\_openEuler\_
17. 匹配来源:
18. 文件名 :/usr/sbin/ifconfig
20. \[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 httpd
2. .. ..
3. ================================================================
4. Package Arch Version Repository Size
5. ================================================================
6. 安装:
7. httpd x86_64 2.4.43-4.oe1 repos\_openEuler\_ 1.2 M
8. 安装依赖关系:
9. apr x86_64 1.7.0-2.oe1 repos\_openEuler\_ 108 k
10. apr-util x86_64 1.6.1-12.oe1 repos\_openEuler\_ 109 k
11. httpd-filesystem noarch 2.4.43-4.oe1 repos\_openEuler\_ 10 k
12. httpd-help noarch 2.4.43-4.oe1 repos\_openEuler\_ 2.4 M
13. httpd-tools x86_64 2.4.43-4.oe1 repos\_openEuler\_ 68 k
14. mod\_http2 x86\_64 1.15.13-1.oe1 repos\_openEuler\_ 125 k
16. 事务概要
17. ================================================================
18. 安装 7 软件包
20. 总计:4.0 M
21. 安装大小:13 M
22. 下载软件包:
23. 运行事务检查
24. 事务检查成功。
25. 运行事务测试
26. 事务测试成功。
27. 运行事务
28. 准备中 : 1/1
29. 运行脚本: apr-1.7.0-2.oe1.x86_64 1/7
30. 安装 : apr-1.7.0-2.oe1.x86_64 1/7
31. 运行脚本: apr-1.7.0-2.oe1.x86_64 1/7
32. 运行脚本: apr-util-1.6.1-12.oe1.x86_64 2/7
33. 安装 : apr-util-1.6.1-12.oe1.x86_64 2/7
34. 运行脚本: apr-util-1.6.1-12.oe1.x86_64 2/7
35. 安装 : httpd-tools-2.4.43-4.oe1.x86_64 3/7
36. 运行脚本: httpd-filesystem-2.4.43-4.oe1.noarch 4/7
37. 安装 : httpd-filesystem-2.4.43-4.oe1.noarch 4/7
38. 安装 : httpd-help-2.4.43-4.oe1.noarch 5/7
39. 安装 : mod_http2-1.15.13-1.oe1.x86_64 6/7
40. 安装 : httpd-2.4.43-4.oe1.x86_64 7/7
41. 运行脚本: httpd-2.4.43-4.oe1.x86_64 7/7
42. 验证 : apr-1.7.0-2.oe1.x86_64 1/7
43. 验证 : apr-util-1.6.1-12.oe1.x86_64 2/7
44. 验证 : httpd-2.4.43-4.oe1.x86_64 3/7
45. 验证 : httpd-filesystem-2.4.43-4.oe1.noarch 4/7
46. 验证 : httpd-help-2.4.43-4.oe1.noarch 5/7
47. 验证 : httpd-tools-2.4.43-4.oe1.x86_64 6/7
48. 验证 : mod_http2-1.15.13-1.oe1.x86_64 7/7
50. 已安装:
51. apr-1.7.0-2.oe1.x86_64
52. apr-util-1.6.1-12.oe1.x86_64
53. httpd-2.4.43-4.oe1.x86_64
54. httpd-filesystem-2.4.43-4.oe1.noarch
55. httpd-help-2.4.43-4.oe1.noarch
56. httpd-tools-2.4.43-4.oe1.x86_64
57. mod_http2-1.15.13-1.oe1.x86_64
59. 完毕!
2)卸载 httpd 软件包,再次检查卸载结果
1. \[root@svr203 ~\]\# yum -y remove httpd
2. .. ..
3. 已移除:
4. apr-1.7.0-2.oe1.x86_64
5. apr-util-1.6.1-12.oe1.x86_64
6. httpd-2.4.43-4.oe1.x86_64
7. httpd-help-2.4.43-4.oe1.noarch
8. httpd-tools-2.4.43-4.oe1.x86_64
9. mod_http2-1.15.13-1.oe1.x86_64
11. 完毕!
3)卸载 httpd 软件包,再次检查卸载结果
1. \[root@svr203 ~\]\# yum list httpd
2. .. ..
3. 可安装的软件包
4. httpd.x86_64 2.4.43-4.oe1 repos\_openEuler\_
步骤二:通过重装软件修复误删的命令程序
1)删除文件 /usr/bin/vim ,检查 vim 编辑器是否还可用
1. \[root@svr203 ~\]\# rm -rf /usr/bin/vim
2. \[root@svr203 ~\]\# vim /root/a.txt
3. -bash: /usr/bin/vim: 没有那个文件或目录
2)使用 yum 安装 vim-enhanced 软件包,再次检查 vim 编辑器是否可用
尝试正常安装 vim-enhanced 软件包,会发现 vim 仍然不可用(因为此软件包已经安装过,直接 install 不会做更改)。
1. \[root@svr203 ~\]\# yum -y install vim-enhanced
2. .. ..
3. 软件包 vim-enhanced-2:8.2-1.oe1.x86_64 已安装。
4. 依赖关系解决。
5. 无需任何处理。
6. 完毕!
8. \[root@svr203 ~\]\# vim /root/a.txt
9. -bash: /usr/bin/vim: 没有那个文件或目录
3)使用 yum 重装 vim-enhanced 软件包,再次检查 vim 编辑器是否可用
1. \[root@svr203 ~\]\# yum -y reinstall vim-enhanced
2. .. ..
3. 依赖关系解决。
4. ================================================================
5. Package Arch Version Repository Size
6. ================================================================
7. 重新安装:
8. vim-enhanced x86_64 2:8.2-1.oe1 repos\_openEuler\_ 1.4 M
10. 事务概要
11. ================================================================
13. 总计:1.4 M
14. 安装大小:3.1 M
15. 下载软件包:
16. 运行事务检查
17. 事务检查成功。
18. 运行事务测试
19. 事务测试成功。
20. 运行事务
21. 准备中 : 1/1
22. 重新安装: vim-enhanced-2:8.2-1.oe1.x86_64 1/2
23. 清理 : vim-enhanced-2:8.2-1.oe1.x86_64 2/2
24. 验证 : vim-enhanced-2:8.2-1.oe1.x86_64 1/2
25. 验证 : vim-enhanced-2:8.2-1.oe1.x86_64 2/2
27. 已重装:
28. vim-enhanced-2:8.2-1.oe1.x86_64
30. 完毕!
32. \[root@svr203 ~\]\# vim /root/a.txt
33. \[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.rpm
3. apr-util-1.6.1-12.oe1.x86_64.rpm
4. httpd-2.4.43-4.oe1.x86_64.rpm
5. httpd-filesystem-2.4.43-4.oe1.noarch.rpm
6. httpd-help-2.4.43-4.oe1.noarch.rpm
7. httpd-tools-2.4.43-4.oe1.x86_64.rpm
8. mariadb-10.3.9-9.oe1.x86_64.rpm
9. mariadb-backup-10.3.9-9.oe1.x86_64.rpm
10. mariadb-common-10.3.9-9.oe1.x86_64.rpm
11. mariadb-errmessage-10.3.9-9.oe1.x86_64.rpm
12. mariadb-gssapi-server-10.3.9-9.oe1.x86_64.rpm
13. mariadb-server-10.3.9-9.oe1.x86_64.rpm
14. mod_http2-1.15.13-1.oe1.x86_64.rpm
15. nginx-filesystem-1.16.1-7.oe1.noarch.rpm
16. perl-DBD-MySQL-4.046-6.oe1.x86_64.rpm
17. perl-DBI-1.643-1.oe1.x86_64.rpm
18. php-common-7.2.10-9.oe1.x86_64.rpm
19. php-fpm-7.2.10-9.oe1.x86_64.rpm
20. php-mysqlnd-7.2.10-9.oe1.x86_64.rpm
21. php-pdo-7.2.10-9.oe1.x86_64.rpm
23. \[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\_pkgs
39. [root@svr203](mailto:root@svr203)
3)确认安装结果
1. \[root@svr203 ~\]\# yum list httpd mariadb-server php-fpm php-mysqlnd
2. .. ..
3. 已安装的软件包
4. httpd.x86_64 2.4.43-4.oe1 @repos\_openEuler\_
5. mariadb-server.x86_64 3:10.3.9-9.oe1 @@commandline
6. php-fpm.x86_64 7.2.10-9.oe1 @@commandline
7. 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-fpm
2. .. ..
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.php
2. <?php
3. 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.php
2. <?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 httpd
2. ● httpd.service - The Apache HTTP Server
3. Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
4. Drop-In: /usr/lib/systemd/system/httpd.service.d
5. └─php-fpm.conf
6. Active: inactive (dead) since Wed 2021-11-17 17:31:40 CST; 3s ago
7. 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 80
15. 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 firewalld
2. 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 firewalld
2. ● firewalld.service - firewalld - dynamic firewall daemon
3. 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 ago
5. Docs: man:firewalld(1)
6. Main PID: 3041422 (firewalld)
7. Tasks: 3 (limit: 100598)
8. Memory: 26.9M
9. CGroup: /system.slice/firewalld.service
10. ├─3041422 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
11. └─3041480 /usr/sbin/iptables-restore -w –n
12. .. ..
13. \[root@svr203 ~\]\#
3)允许 httpd 服务开机自启,禁止 firewalld 服务开机自启
允许 httpd 服务开机自启:
1. \[root@svr203 ~\]\# systemctl enable httpd
2. 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 httpd
5. enabled
禁止 firewalld 服务开机自启:
1. \[root@svr203 ~\]\# systemctl disable firewalld
2. 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 firewalld
6. disabled
4)重启主机后,确认 httpd、firewalld 服务的状
执行 reboot 快速重启。
1. \[root@svr203 ~\]\# reboot
2. .. ..
检查 httpd 服务应该已经处于 running 状态,说明开机自启已经实现。
1. \[root@svr203 ~\]\# systemctl status httpd
2. ● httpd.service - The Apache HTTP Server
3. Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor prese>
4. Drop-In: /usr/lib/systemd/system/httpd.service.d
5. └─php-fpm.conf
6. Active: active (running) since Sat 2021-05-29 18:48:22 CST; 3s ago
7. Docs: man:httpd.service(8)
8. Main PID: 8166 (httpd)
9. Status: "Processing requests..."
10. Tasks: 213
11. Memory: 14.7M
12. CGroup: /system.slice/httpd.service
13. ├─8166 /usr/sbin/httpd -DFOREGROUND
14. ├─8167 /usr/sbin/httpd -DFOREGROUND
15. ├─8168 /usr/sbin/httpd -DFOREGROUND
16. ├─8169 /usr/sbin/httpd -DFOREGROUND
17. └─8170 /usr/sbin/httpd -DFOREGROUND
19. 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 firewalld
2. ● firewalld.service - firewalld - dynamic firewall daemon
3. 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-fpm
2. .. ..
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 0
2. \[root@svr203 ~\]\# getenforce
3. Permissive
2)设置开机后禁用 SELinux
需要修改 / etc/selinux/config 配置文件。
1. \[root@svr203 ~\]\# vim /etc/selinux/config
2. \# 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=disabled
8. \# 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 firewalld
2. \[root@svr203 ~\]#
2)设置每次开机后不自动运行 firewalld 服务
如果所在网络环境已经部署了专门的硬件防火墙,那么通常会将 Linux 服务器上的防火墙服务关闭,只要设置 firewalld 服务不要开机自启动就行。
1. \[root@svr203 ~\]\# systemctl disable firewalld
2. 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 firewalld
6. disabled
步骤三:重启系统,检查 SELinux 状态、防火墙状态
1)重启系统
2)重新登入系统,检查 SELinux 和防火墙状态
1. \[root@svr203 ~\]\# getenforce
2. Disabled
4. \[root@svr203 ~\]\# systemctl status firewalld
5. ● firewalld.service - firewalld - dynamic firewall daemon
6. 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