Top

  1. 挂载 / 卸载光盘
  2. 配置开机挂载光盘
  3. 准备本地软件仓库
  4. 使用本机目录作为软件源
  5. yum 查询软件
  6. yum 安装 / 卸载软件
  7. 快速构建 LAMP 平台
  8. 测试 LAMP 网站平台
  9. 系统控制 systemctl
  10. 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 所示。

CASE - 图1

图 - 1

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

CASE - 图2

图 - 2

步骤二:在 openEuler 虚拟机中挂载光盘

1)创建挂载点目录

  1. 1. \[root@svr203 ~\]\# mkdir /mnt/dvd
  2. 2. \[root@svr203 ~\]\# df -hT /mnt/dvd/
  3. 3. 文件系统 类型 容量 已用 可用 已用% 挂载点
  4. 4. /dev/mapper/openeuler-root ext4 51G 2.9G 46G 6% /

2)执行挂载操作

  1. 1. \[root@svr203 ~\]\# mount /dev/cdrom /mnt/dvd
  2. 2. mount: /mnt/dvd: WARNING: source write-protected, mounted read-only.

3)确认挂载记录

  1. 1. \[root@svr203 ~\]\# df -hT /mnt/dvd/
  2. 2. 文件系统 类型 容量 已用 可用 已用% 挂载点
  3. 3. /dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt/dvd

步骤三:访问光盘中的文档

确认通过挂载点目录 /mnt/dvd/ 可找到光盘中的文档

  1. 1. \[root@svr203 ~\]\# ls /mnt/dvd
  2. 2. docs images ks repodata TRANS.TBL
  3. 3. EFI isolinux Packages RPM-GPG-KEY-openEuler

步骤四:卸载光盘

卸载光盘,再次检查挂载点,已经只是一个空目录了。

  1. 1. \[root@svr203 ~\]\# umount /mnt/dvd
  2. 2. \[root@svr203 ~\]\# ls /mnt/dvd
  3. 3. \[root@svr203 ~\]\#

2 配置开机挂载光盘

2.1 问题

本例要求实现 Linux 系统在开机时自动挂载 openEuler 光盘,相关说明如下:

  1. 确认虚拟机上已正确连接 openEuler 光盘
  2. 配置每次开机后将光盘挂载到 / repos/openEuler / 目录
  3. 重启虚拟机,检查自动挂载效果

2.2 步骤

实现此案例需要按照如下步骤进行。
步骤一:插入光盘设备

详细操作参见前一个案例。

步骤二:配置开机挂载光盘

1)创建挂载点

  1. 1. \[root@svr203 ~\]\# mkdir -p /repos/openEuler

2)修改 / etc/fstab 文件,添加挂载记录

  1. 1. \[root@svr203 ~\]\# vim /etc/fstab
  2. 2. .. ..
  3. 3. /dev/cdrom /repos/openEuler iso9660 defaults,ro 0 0

3)检查配置是否可用

  1. 1. \[root@svr203 ~\]\# mount -a
  2. 3. \[root@svr203 ~\]\# df -hT /repos/openEuler/
  3. 4. 文件系统 类型 容量 已用 可用 已用% 挂载点
  4. 5. /dev/sr0 iso9660 4.2G 4.2G 0 100% /repos/openEuler

步骤三:重启并验证效果

1)重启 Linux 主机

  1. 1. \[root@svr203 ~\]\# reboot
  2. 2. .. ..

2)重新登入系统,检查光盘挂载点

  1. 1. \[root@svr203 ~\]\# ls /repos/openEuler/
  2. 2. docs images ks repodata TRANS.TBL
  3. 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. 1. \[root@svr203 ~\]\# mkdir -p /repos/openEuler

3)挂载 openEuler 光盘

  1. 1. \[root@svr203 ~\]\# mount /dev/cdrom /repos/openEuler
  2. 2. mount: /mnt/dvd: WARNING: source write-protected, mounted read-only.

3)确认挂载结果

  1. 1. \[root@svr203 ~\]\# ls /repos/openEuler/
  2. 2. docs images ks repodata TRANS.TBL
  3. 3. EFI isolinux Packages RPM-GPG-KEY-openEuler

4 使用本机目录作为软件源

4.1 问题

本例要求为 Linux 主机配置本机可访问的 yum 软件源,完成下列任务:

1)清理旧配置、不可用的配置

2)添加新的软件源,指向仓库目录 file:///repos/openEuler

3)清理 yum 缓存数据

4)列出软件仓库列表,确认结果

4.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:清理旧配置、不可用的配置

清理旧的配置,或者不可用 / 不使用的配置,避免干扰

  1. 1. \[root@svr203 ~\]\# mkdir /etc/yum.repos.d/backup
  2. 2. \[root@svr203 ~\]\# mv /etc/yum.repos.d

步骤二:添加新的软件源,指向前一步准备的本地软件仓库

1)添加软件源

  1. 1. \[root@svr203 ~\]\# yum-config-manager --add-repo file:
  2. 2. 添加仓库自:file:

2)确认结果

  1. 1. \[root@svr203 ~\]\# ls /etc/yum.repos.d/
  2. 2. backup repo\_cos7dvd\_.repo

3)禁止检查软件签名

  1. 1. \[root@svr203 ~\]\# vim /etc/yum.conf
  2. 2. \[main\]
  3. 3. gpgcheck = 0
  4. 4. .. ..

步骤三:清理 yum 缓存数据

  1. 1. \[root@svr203 ~\]\# yum clean all
  2. 2. 44 文件已删除

步骤四:列出软件仓库列表,确认结果

1)查看仓库的简单信息

  1. 1. \[root@svr203 ~\]\# yum repolist
  2. 2. 仓库标识 仓库名称
  3. 3. repos\_openEuler\_ created by dnf config-manager from file:
  4. 4. \[root@svr203 ~\]#

2)查看仓库的详细信息

  1. 1. \[root@svr203 ~\]\# yum repolist
  2. 2. 加载插件:builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate\_completion\_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
  3. 3. YUM version: 4.2.23
  4. 4. cachedir: /var/cache/dnf
  5. 5. created by dnf config-manager f 286 MB/s | 3.1 MB 00:00
  6. 6. 上次元数据过期检查:0:00:01 前,执行于 20210529 星期六 155815秒。
  7. 7. Repo-id : repos\_openEuler\_
  8. 8. Repo-name : created by dnf config-manager from
  9. 9. : file:
  10. 10. Repo-revision : 1608661707
  11. 11. Repo-updated : 20201223 星期三 022827
  12. 12. Repo-pkgs : 2,531
  13. 13. Repo-available-pkgs: 2,531
  14. 14. Repo-size : 3.2 G
  15. 15. Repo-baseurl : file:
  16. 16. Repo-expire : 172,800 (最近 20210529 星期六
  17. 17. : 155815秒)
  18. 18. Repo-filename : /etc/yum.repos.d/repos\_openEuler\_.repo
  19. 19. Total packages: 2,531
  20. 21. \[root@svr203 ~\]#

5 yum 查询软件

5.1 问题

本例要求学会使用 yum 命令查询软件包信息,完成下列任务:

1)列出软件包名称、版本信息

  • 列出所有已安装的软件、所有未安装但软件源能提供的软件包
  • 检查软件 httpd、rar 是否已经安装

2)查询软件包描述信息

  • 了解软件包 kernel、bash 的用途

3)查询哪些软件包能提供指定的程序 / 文件

  • 查询命令程序 vim、ifconfig 分别由哪个软件包提供

5.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:列出软件包名称、版本信息

1)列出所有已安装的软件

  1. 1. \[root@svr203 ~\]\# yum list installed
  2. 2. .. ..
  3. 3. 已安装的软件包
  4. 4. CUnit.x86_64 2.1.3-22.oe1 @anaconda
  5. 5. GeoIP.x86_64 1.6.12-5.oe1 @anaconda
  6. 6. GeoIP-GeoLite-data.noarch 2018.06-3.oe1 @anaconda
  7. 7. ModemManager-glib.x86_64 1.14.0-2.oe1 @anaconda
  8. 8. NetworkManager.x86_64 1:1.26.2-4.oe1 @anaconda
  9. 9. NetworkManager-config-server.noarch 1:1.26.2-4.oe1 @anaconda
  10. 10. NetworkManager-help.noarch 1:1.26.2-4.oe1 @anaconda
  11. 11. NetworkManager-libnm.x86_64 1:1.26.2-4.oe1 @anaconda
  12. 12. PackageKit.x86_64 1.1.12-9.oe1 @anaconda
  13. 14. .. ..
  14. 16. xmlrpc-c.x86_64 1.51.06-1.oe1 @anaconda
  15. 17. xorg-x11-proto-devel.noarch 2019.1-1.oe1 @anaconda
  16. 18. xz.x86_64 5.2.5-1.oe1 @anaconda
  17. 19. xz-libs.x86_64 5.2.5-1.oe1 @anaconda
  18. 20. yajl.x86_64 2.1.0-12.oe1 @anaconda
  19. 21. yum.noarch 4.2.23-3.oe1 @anaconda
  20. 22. zip.x86_64 3.0-26.oe1 @anaconda
  21. 23. zlib.x86_64 1.2.11-17.oe1 @anaconda
  22. 24. zlib-devel.x86_64 1.2.11-17.oe1 @anaconda
  23. 25. zstd.x86_64 1.4.5-0.oe1 @anaconda
  24. 27. \[root@svr203 ~\]\#

3)检查软件 httpd、rar 是否已经安装

  1. 1. \[root@svr203 ~\]\# yum list httpd
  2. 2. .. ..
  3. 3. 可安装的软件包
  4. 4. httpd.x86_64 2.4.43-4.oe1 repos\_openEuler\_
  5. 6. \[root@svr203 ~\]\# yum list rar
  6. 7. .. ..
  7. 8. 错误:没有匹配的软件包可以列出

步骤二:查询软件包描述信息

1)了解软件包 kernel 的用途

软件包 kernel 主要提供 Linux 的运行内核程序:

  1. 1. \[root@svr203 ~\]\# yum info kernel
  2. 2. .. ..
  3. 3. 已安装的软件包
  4. 4. Name : kernel
  5. 5. Version : 4.19.90
  6. 6. 发布 : 2012.5.0.0054.oe1
  7. 7. Architecture : x86_64
  8. 8. Size : 208 M
  9. 9. : kernel-4.19.90-2012.5.0.0054.oe1.src.rpm
  10. 10. Repository : @System
  11. 11. 来自仓库 : anaconda
  12. 12. Summary : Linux Kernel
  13. 13. URL : http:
  14. 14. 协议 : GPLv2
  15. 15. Description : The Linux Kernel, the operating system core itself.
  16. 17. \[root@svr203 ~\]#

2)了解软件包 bash 的用途

软件包 bash 主要为 Linux 系统提供命令行解释器程序(/bin/bash):

  1. 1. \[root@svr203 ~\]\# yum info bash
  2. 2. .. ..
  3. 3. 已安装的软件包
  4. 4. Name : bash
  5. 5. Version : 5.0
  6. 6. 发布 : 14.oe1
  7. 7. Architecture : x86_64
  8. 8. Size : 5.8 M
  9. 9. : bash-5.0-14.oe1.src.rpm
  10. 10. Repository : @System
  11. 11. 来自仓库 : anaconda
  12. 12. Summary : It is the Bourne Again Shell
  13. 13. URL : https:
  14. 14. 协议 : GPLv3
  15. 15. Description : Bash is the GNU Project's shell. Bash is the
  16. 16. : Bourne Again SHell. Bash is an sh-compatible
  17. 17. : shell that incorporates useful features from the
  18. 18. : Korn shell (ksh) and C shell (csh). It is
  19. 19. : intended to conform to the IEEE POSIX P1003.2/ISO
  20. 20. : 9945.2 Shell and Tools standard. It offers
  21. 21. : functional improvements over sh for both
  22. 22. : programming and interactive use. In addition,
  23. 23. : most sh scripts can be run by Bash without
  24. 24. : modification.
  25. 26. \[root@svr203 ~\]#

步骤三:查询哪些软件包能提供指定的程序 / 文件

1)查询命令程序 vim 由哪个软件包提供

可以获知对应的软件包名称是 vim-enhanced:

  1. 1. \[root@svr203 ~\]\# yum provides "*bin/vim"
  2. 2. .. ..
  3. 3. vim-enhanced-2:8.2-1.oe1.x86_64 : This is a package containing
  4. 4. : enhanced vim editor.
  5. 5. 仓库 @System
  6. 6. 匹配来源:
  7. 7. 提供 : /usr/bin/vim
  8. 9. vim-enhanced-2:8.2-1.oe1.x86_64 : This is a package containing
  9. 10. : enhanced vim editor.
  10. 11. 仓库 repos\_openEuler\_
  11. 12. 匹配来源:
  12. 13. 提供 : /usr/bin/vim
  13. 15. \[root@svr203 ~\]#

2)查询命令程序 ifconfig 由哪个软件包提供

可以获知对应的软件包名称是 net-tools:

  1. 1. \[root@svr203 ~\]\# yum provides "*/ifconfig"
  2. 2. .. ..
  3. 3. atune-0.3-0.2.oe1.x86_64 : AI auto tuning system
  4. 4. 仓库 repos\_openEuler\_
  5. 5. 匹配来源:
  6. 6. 文件名 :/usr/libexec/atuned/scripts/ifconfig
  7. 8. net-tools-2.0-0.54.oe1.x86_64 : Important Programs for
  8. 9. : Networking
  9. 10. 仓库 @System
  10. 11. 匹配来源:
  11. 12. 文件名 :/usr/sbin/ifconfig
  12. 14. net-tools-2.0-0.54.oe1.x86_64 : Important Programs for
  13. 15. : Networking
  14. 16. 仓库 repos\_openEuler\_
  15. 17. 匹配来源:
  16. 18. 文件名 :/usr/sbin/ifconfig
  17. 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. 1. \[root@svr203 ~\]\# yum -y install httpd
  2. 2. .. ..
  3. 3. ================================================================
  4. 4. Package Arch Version Repository Size
  5. 5. ================================================================
  6. 6. 安装:
  7. 7. httpd x86_64 2.4.43-4.oe1 repos\_openEuler\_ 1.2 M
  8. 8. 安装依赖关系:
  9. 9. apr x86_64 1.7.0-2.oe1 repos\_openEuler\_ 108 k
  10. 10. apr-util x86_64 1.6.1-12.oe1 repos\_openEuler\_ 109 k
  11. 11. httpd-filesystem noarch 2.4.43-4.oe1 repos\_openEuler\_ 10 k
  12. 12. httpd-help noarch 2.4.43-4.oe1 repos\_openEuler\_ 2.4 M
  13. 13. httpd-tools x86_64 2.4.43-4.oe1 repos\_openEuler\_ 68 k
  14. 14. mod\_http2 x86\_64 1.15.13-1.oe1 repos\_openEuler\_ 125 k
  15. 16. 事务概要
  16. 17. ================================================================
  17. 18. 安装 7 软件包
  18. 20. 总计:4.0 M
  19. 21. 安装大小:13 M
  20. 22. 下载软件包:
  21. 23. 运行事务检查
  22. 24. 事务检查成功。
  23. 25. 运行事务测试
  24. 26. 事务测试成功。
  25. 27. 运行事务
  26. 28. 准备中 : 1/1
  27. 29. 运行脚本: apr-1.7.0-2.oe1.x86_64 1/7
  28. 30. 安装 : apr-1.7.0-2.oe1.x86_64 1/7
  29. 31. 运行脚本: apr-1.7.0-2.oe1.x86_64 1/7
  30. 32. 运行脚本: apr-util-1.6.1-12.oe1.x86_64 2/7
  31. 33. 安装 : apr-util-1.6.1-12.oe1.x86_64 2/7
  32. 34. 运行脚本: apr-util-1.6.1-12.oe1.x86_64 2/7
  33. 35. 安装 : httpd-tools-2.4.43-4.oe1.x86_64 3/7
  34. 36. 运行脚本: httpd-filesystem-2.4.43-4.oe1.noarch 4/7
  35. 37. 安装 : httpd-filesystem-2.4.43-4.oe1.noarch 4/7
  36. 38. 安装 : httpd-help-2.4.43-4.oe1.noarch 5/7
  37. 39. 安装 : mod_http2-1.15.13-1.oe1.x86_64 6/7
  38. 40. 安装 : httpd-2.4.43-4.oe1.x86_64 7/7
  39. 41. 运行脚本: httpd-2.4.43-4.oe1.x86_64 7/7
  40. 42. 验证 : apr-1.7.0-2.oe1.x86_64 1/7
  41. 43. 验证 : apr-util-1.6.1-12.oe1.x86_64 2/7
  42. 44. 验证 : httpd-2.4.43-4.oe1.x86_64 3/7
  43. 45. 验证 : httpd-filesystem-2.4.43-4.oe1.noarch 4/7
  44. 46. 验证 : httpd-help-2.4.43-4.oe1.noarch 5/7
  45. 47. 验证 : httpd-tools-2.4.43-4.oe1.x86_64 6/7
  46. 48. 验证 : mod_http2-1.15.13-1.oe1.x86_64 7/7
  47. 50. 已安装:
  48. 51. apr-1.7.0-2.oe1.x86_64
  49. 52. apr-util-1.6.1-12.oe1.x86_64
  50. 53. httpd-2.4.43-4.oe1.x86_64
  51. 54. httpd-filesystem-2.4.43-4.oe1.noarch
  52. 55. httpd-help-2.4.43-4.oe1.noarch
  53. 56. httpd-tools-2.4.43-4.oe1.x86_64
  54. 57. mod_http2-1.15.13-1.oe1.x86_64
  55. 59. 完毕!

2)卸载 httpd 软件包,再次检查卸载结果

  1. 1. \[root@svr203 ~\]\# yum -y remove httpd
  2. 2. .. ..
  3. 3. 已移除:
  4. 4. apr-1.7.0-2.oe1.x86_64
  5. 5. apr-util-1.6.1-12.oe1.x86_64
  6. 6. httpd-2.4.43-4.oe1.x86_64
  7. 7. httpd-help-2.4.43-4.oe1.noarch
  8. 8. httpd-tools-2.4.43-4.oe1.x86_64
  9. 9. mod_http2-1.15.13-1.oe1.x86_64
  10. 11. 完毕!

3)卸载 httpd 软件包,再次检查卸载结果

  1. 1. \[root@svr203 ~\]\# yum list httpd
  2. 2. .. ..
  3. 3. 可安装的软件包
  4. 4. httpd.x86_64 2.4.43-4.oe1 repos\_openEuler\_

步骤二:通过重装软件修复误删的命令程序

1)删除文件 /usr/bin/vim ,检查 vim 编辑器是否还可用

  1. 1. \[root@svr203 ~\]\# rm -rf /usr/bin/vim
  2. 2. \[root@svr203 ~\]\# vim /root/a.txt
  3. 3. -bash: /usr/bin/vim: 没有那个文件或目录

2)使用 yum 安装 vim-enhanced 软件包,再次检查 vim 编辑器是否可用

尝试正常安装 vim-enhanced 软件包,会发现 vim 仍然不可用(因为此软件包已经安装过,直接 install 不会做更改)。

  1. 1. \[root@svr203 ~\]\# yum -y install vim-enhanced
  2. 2. .. ..
  3. 3. 软件包 vim-enhanced-2:8.2-1.oe1.x86_64 已安装。
  4. 4. 依赖关系解决。
  5. 5. 无需任何处理。
  6. 6. 完毕!
  7. 8. \[root@svr203 ~\]\# vim /root/a.txt
  8. 9. -bash: /usr/bin/vim: 没有那个文件或目录

3)使用 yum 重装 vim-enhanced 软件包,再次检查 vim 编辑器是否可用

  1. 1. \[root@svr203 ~\]\# yum -y reinstall vim-enhanced
  2. 2. .. ..
  3. 3. 依赖关系解决。
  4. 4. ================================================================
  5. 5. Package Arch Version Repository Size
  6. 6. ================================================================
  7. 7. 重新安装:
  8. 8. vim-enhanced x86_64 2:8.2-1.oe1 repos\_openEuler\_ 1.4 M
  9. 10. 事务概要
  10. 11. ================================================================
  11. 13. 总计:1.4 M
  12. 14. 安装大小:3.1 M
  13. 15. 下载软件包:
  14. 16. 运行事务检查
  15. 17. 事务检查成功。
  16. 18. 运行事务测试
  17. 19. 事务测试成功。
  18. 20. 运行事务
  19. 21. 准备中 : 1/1
  20. 22. 重新安装: vim-enhanced-2:8.2-1.oe1.x86_64 1/2
  21. 23. 清理 : vim-enhanced-2:8.2-1.oe1.x86_64 2/2
  22. 24. 验证 : vim-enhanced-2:8.2-1.oe1.x86_64 1/2
  23. 25. 验证 : vim-enhanced-2:8.2-1.oe1.x86_64 2/2
  24. 27. 已重装:
  25. 28. vim-enhanced-2:8.2-1.oe1.x86_64
  26. 30. 完毕!
  27. 32. \[root@svr203 ~\]\# vim /root/a.txt
  28. 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. 1. \[root@svr203 ~\]\# ls /root/lamp\_oe1\_pkgs/
  2. 2. apr-1.7.0-2.oe1.x86_64.rpm
  3. 3. apr-util-1.6.1-12.oe1.x86_64.rpm
  4. 4. httpd-2.4.43-4.oe1.x86_64.rpm
  5. 5. httpd-filesystem-2.4.43-4.oe1.noarch.rpm
  6. 6. httpd-help-2.4.43-4.oe1.noarch.rpm
  7. 7. httpd-tools-2.4.43-4.oe1.x86_64.rpm
  8. 8. mariadb-10.3.9-9.oe1.x86_64.rpm
  9. 9. mariadb-backup-10.3.9-9.oe1.x86_64.rpm
  10. 10. mariadb-common-10.3.9-9.oe1.x86_64.rpm
  11. 11. mariadb-errmessage-10.3.9-9.oe1.x86_64.rpm
  12. 12. mariadb-gssapi-server-10.3.9-9.oe1.x86_64.rpm
  13. 13. mariadb-server-10.3.9-9.oe1.x86_64.rpm
  14. 14. mod_http2-1.15.13-1.oe1.x86_64.rpm
  15. 15. nginx-filesystem-1.16.1-7.oe1.noarch.rpm
  16. 16. perl-DBD-MySQL-4.046-6.oe1.x86_64.rpm
  17. 17. perl-DBI-1.643-1.oe1.x86_64.rpm
  18. 18. php-common-7.2.10-9.oe1.x86_64.rpm
  19. 19. php-fpm-7.2.10-9.oe1.x86_64.rpm
  20. 20. php-mysqlnd-7.2.10-9.oe1.x86_64.rpm
  21. 21. php-pdo-7.2.10-9.oe1.x86_64.rpm
  22. 23. \[root@svr203 ~\]#

注意:如果使用官网源,可以直接执行 “yum -y install httpd mariadb-server php-fpm php-mysqlnd” 命令来安装。

2)安装好软件 httpd、mariadb-server、php-fpm、php-mysqlnd

  1. 1. \[root@svr203 ~\]\# yum -y install /root/lamp\_oe1\_pkgs
  2. 39. [root@svr203](mailto:root@svr203)

3)确认安装结果

  1. 1. \[root@svr203 ~\]\# yum list httpd mariadb-server php-fpm php-mysqlnd
  2. 2. .. ..
  3. 3. 已安装的软件包
  4. 4. httpd.x86_64 2.4.43-4.oe1 @repos\_openEuler\_
  5. 5. mariadb-server.x86_64 3:10.3.9-9.oe1 @@commandline
  6. 6. php-fpm.x86_64 7.2.10-9.oe1 @@commandline
  7. 7. php-mysqlnd.x86_64 7.2.10-9.oe1 @@commandline

步骤二:启用 LAMP 网站平台

1)开启系统服务 httpd、mariadb

主要包括:Web 服务 httpd、数据库服务 mariadb、PHP 网页解析服务 php-fpm。

  1. 1. \[root@svr203 ~\]\# systemctl restart httpd mariadb php-fpm
  2. 2. .. ..

2)关闭 firewalld 防火墙服务,并禁止其开机自启动

  1. 1. \[root@svr203 ~\]\# systemctl stop firewalld

步骤三:从浏览器访问 http:// 虚拟机的 IP 地址 / ,能看到标配网页

可以从 Win10 真机的浏览器访问http:// 虚拟机的 IP 地址 / ,如图 - 3 所示。

CASE - 图3

图 - 3

8 测试 LAMP 网站平台

8.1 问题

本例要求测试 LAMP 动态网站平台,确保可以支撑 PHP 应用及数据库,完成下列任务。

1)测试 PHP 网页解析

2)测试 PHP 访问数据库

8.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:测试 PHP 网页解析

1)编写网页 /var/www/html/test1.php

  1. 1. \[root@svr203 ~\]\# vim /var/www/html/test1.php
  2. 2. <?php
  3. 3. phpinfo();
  4. 4. ?>

2)访问 http:// 虚拟机地址 / test1.php ,能显示 PHP 环境信息

通过 Web 浏览器访问 http://192.168.10.203/test1.php ,可以看到 PHP 环境信息,如图 - 4 所示。

CASE - 图4

图 - 4

步骤二:测试 PHP 访问数据库

1)编写网页 /var/www/html/test2.php

在 Web 服务器的网页目录下新建另一个测试网页 test2.php,其中本机的 mariadb 数据库服务未做配置时,管理员账号为 root、密码为空。

  1. 1. \[root@svr203 ~\]\# vim /var/www/html/test2.php
  2. 2. <?php $mysqli = new mysqli('localhost','root','','mysql');
  3. 4. if (mysqli\_connect\_errno()){ echo 'Failure!!'; }
  4. 6. else echo 'Success!!';

2)访问 http:// 虚拟机地址 / test2.php ,能报告数据库连接状态信息

通过 Web 浏览器访问 http://192.168.10.203/test2.php ,可以看到数据库连接的反馈信息,正常结果页面应显示 “Success !!”,如图 - 5 所示。

CASE - 图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. 1. \[root@svr203 ~\]\# systemctl stop httpd

查看 httpd 服务的状态,注意 inactive(dead) 表示已经停止运行:

  1. 1. \[root@svr203 ~\]\# systemctl status httpd
  2. 2. httpd.service - The Apache HTTP Server
  3. 3. Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  4. 4. Drop-In: /usr/lib/systemd/system/httpd.service.d
  5. 5. └─php-fpm.conf
  6. 6. Active: inactive (dead) since Wed 2021-11-17 17:31:40 CST; 3s ago
  7. 7. Docs: man:httpd.service(8)
  8. 8. Process: 2871187 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
  9. 9. Process: 1120 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS)
  10. 10. Main PID: 1120 (code=exited, status=0/SUCCESS)
  11. 11. Status: "Total requests: 3623; Idle/Busy workers 100/0;Requests/sec: 0.000647; Bytes served/sec: 44 B/sec"
  12. 13. 11 14 03:51:01 f0-svr1.example.com systemd\[1\]: Reloading The Apache HTTP Server.
  13. 14. 11 14 03:51:01 f0-svr1.example.com httpd\[1120\]: Server configured, listening on: port 80
  14. 15. 11 14 03:51:01 f0-svr1.example.com systemd\[1\]: Reloaded The Apache HTTP Server.
  15. 16. 11 17 17:31:39 f0-svr1.example.com systemd\[1\]: Stopping The Apache HTTP Server...
  16. 17. 11 17 17:31:40 f0-svr1.example.com systemd\[1\]: Stopped The Apache HTTP Server.
  17. 18. Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
  18. 20. \[root@svr203 ~\]\#

2)启动 firewalld 服务,查看 firewalld 服务的状态

启动 firewalld 服务(防火墙):

  1. 1. \[root@svr203 ~\]\# systemctl start firewalld
  2. 2. Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

查看 firewalld 服务的状态,注意 active(running) 表示正在运行:

  1. 1. \[root@f0-svr1 ~\]\# systemctl status firewalld
  2. 2. firewalld.service - firewalld - dynamic firewall daemon
  3. 3. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
  4. 4. Active: active (running) since Wed 2021-11-17 17:28:56 CST; 1s ago
  5. 5. Docs: man:firewalld(1)
  6. 6. Main PID: 3041422 (firewalld)
  7. 7. Tasks: 3 (limit: 100598)
  8. 8. Memory: 26.9M
  9. 9. CGroup: /system.slice/firewalld.service
  10. 10. ├─3041422 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
  11. 11. └─3041480 /usr/sbin/iptables-restore -w n
  12. 12. .. ..
  13. 13. \[root@svr203 ~\]\#

3)允许 httpd 服务开机自启,禁止 firewalld 服务开机自启

允许 httpd 服务开机自启:

  1. 1. \[root@svr203 ~\]\# systemctl enable httpd
  2. 2. Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
  3. 4. \[root@svr203 ~\]\# systemctl is-enabled httpd
  4. 5. enabled

禁止 firewalld 服务开机自启:

  1. 1. \[root@svr203 ~\]\# systemctl disable firewalld
  2. 2. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  3. 3. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  4. 5. \[root@svr203 ~\]\# systemctl is-enabled firewalld
  5. 6. disabled

4)重启主机后,确认 httpd、firewalld 服务的状

执行 reboot 快速重启。

  1. 1. \[root@svr203 ~\]\# reboot
  2. 2. .. ..

检查 httpd 服务应该已经处于 running 状态,说明开机自启已经实现。

  1. 1. \[root@svr203 ~\]\# systemctl status httpd
  2. 2. httpd.service - The Apache HTTP Server
  3. 3. Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor prese>
  4. 4. Drop-In: /usr/lib/systemd/system/httpd.service.d
  5. 5. └─php-fpm.conf
  6. 6. Active: active (running) since Sat 2021-05-29 18:48:22 CST; 3s ago
  7. 7. Docs: man:httpd.service(8)
  8. 8. Main PID: 8166 (httpd)
  9. 9. Status: "Processing requests..."
  10. 10. Tasks: 213
  11. 11. Memory: 14.7M
  12. 12. CGroup: /system.slice/httpd.service
  13. 13. ├─8166 /usr/sbin/httpd -DFOREGROUND
  14. 14. ├─8167 /usr/sbin/httpd -DFOREGROUND
  15. 15. ├─8168 /usr/sbin/httpd -DFOREGROUND
  16. 16. ├─8169 /usr/sbin/httpd -DFOREGROUND
  17. 17. └─8170 /usr/sbin/httpd -DFOREGROUND
  18. 19. 5 29 18:48:22 svr203.tedu.cn systemd\[1\]: Starting The Apache HTTP Server...
  19. 20. 5 29 18:48:22 svr203.tedu.cn httpd\[8166\]: \[Sat May 29 18:48:22.581742 2021\]
  20. 21. 5 29 18:48:22 svr203.tedu.cn systemd\[1\]: Started The Apache HTTP Server.
  21. 23. \[root@svr203 ~\]#

同样,防火墙服务 firewalld 已经处于 dead 状态,说明禁止开机自启已经实现。

  1. 1. \[root@svr203 ~\]\# systemctl status firewalld
  2. 2. firewalld.service - firewalld - dynamic firewall daemon
  3. 3. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
  4. 4. Active: inactive (dead)
  5. 5. Docs: man:firewalld(1)
  6. 7. \[root@svr203 ~\]#

5)最后把 httpd、mariadb、php-fpm 服务都设置为开机自启

  1. 1. \[root@svr203 ~\]\# systemctl enable httpd mariadb php-fpm
  2. 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. 1. \[root@svr203 ~\]\# setenforce 0
  2. 2. \[root@svr203 ~\]\# getenforce
  3. 3. Permissive

2)设置开机后禁用 SELinux

需要修改 / etc/selinux/config 配置文件。

  1. 1. \[root@svr203 ~\]\# vim /etc/selinux/config
  2. 2. \# This file controls the state of SELinux on the system.
  3. 3. \# SELINUX= can take one of these three values:
  4. 4. \# enforcing - SELinux security policy is enforced.
  5. 5. \# permissive - SELinux prints warnings instead of enforcing.
  6. 6. \# disabled - No SELinux policy is loaded.
  7. 7. SELINUX=disabled
  8. 8. \# SELINUXTYPE= can take one of three values:
  9. 9. \# targeted - Targeted processes are protected,
  10. 10. \# minimum - Modification of targeted policy. Only selected processes are protected.
  11. 11. \# mls - Multi Level Security protection.
  12. 12. SELINUXTYPE=targeted

步骤二:关闭防火墙网络防护

1)立即停止防火墙服务

  1. 1. \[root@svr203 ~\]\# systemctl stop firewalld
  2. 2. \[root@svr203 ~\]#

2)设置每次开机后不自动运行 firewalld 服务

如果所在网络环境已经部署了专门的硬件防火墙,那么通常会将 Linux 服务器上的防火墙服务关闭,只要设置 firewalld 服务不要开机自启动就行。

  1. 1. \[root@svr203 ~\]\# systemctl disable firewalld
  2. 2. Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
  3. 3. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  4. 5. \[root@control ~\]\# systemctl is-enabled firewalld
  5. 6. disabled

步骤三:重启系统,检查 SELinux 状态、防火墙状态

1)重启系统

2)重新登入系统,检查 SELinux 和防火墙状态

  1. 1. \[root@svr203 ~\]\# getenforce
  2. 2. Disabled
  3. 4. \[root@svr203 ~\]\# systemctl status firewalld
  4. 5. firewalld.service - firewalld - dynamic firewall daemon
  5. 6. Loaded: loaded (/usr/lib/systemd/system/firewalld.ser>
  6. 7. Active: inactive (dead)
  7. 8. Docs: man:firewalld(1)
  8. 9. .. ..

https://tts.tmooc.cn/ttsPage/NTD/NTDTN202109/LNXSEC/DAY03/CASE/01/index.html