使用 MySQL Database Service 在 Oracle Linux 上部署 Moodle LMS
Moodle 是一种免费开源学习管理系统 (LMS),使用 PHP 编写的,并在 GNU 通用公共许可证下分发。穆德尔是按照教学原则开发的,用于学校、大学、工作场所和其他部门的混合学习、远程教育、翻开的课堂和其他电子学习项目。
利用可定制的管理功能,您可以使用 Moodle 为教育工作者和培训人员创建具有在线课程的私人网站,以实现学习目标。Moodle 允许您使用社区提供的插件来扩展和定制学习环境。
体系结构
您可以在单节点配置中部署 Moodle,也可以将其作为多节点的高可用性配置的一部分。此参考体系结构包括与两个配置兼容的 Terraform 自动化。
有关生产级的高可用性体系结构,请参阅下图,其中说明了多节点方案。
上图说明了 OCI 上简化的高可用性应用环境,重点介绍负载平衡器后面的两个虚拟机实例。这些实例位于可用性域内的两个不同容错域中。此体系结构使用 OCI 文件存储服务;Moodle 安装在共享网络文件系统 (Network File System, NFS) 中。该文件系统存在于专用专用子网中,该子网中的网络安全组 (Network Security Group, NSG) 允许从所有实例访问挂载目标。
下图说明了简单的单节点体系结构。它包括一个轻量级部署,它可能适用于学习目的或作为概念证明。
- 租户
租户是安全隔离的分区,在您注册 Oracle Cloud Infrastructure 时,Oracle 将在 Oracle Cloud 中设置该分区。您可以在租户中的 Oracle Cloud 中创建、组织和管理资源。租户与公司或组织同义词。
- 策略
Oracle Cloud Infrastructure Identity and Access Management 策略指定谁可以访问哪些资源以及如何访问。在组和区间级别授予了访问权限,这意味着您可以编写在特定区间或租户中为组提供特定类型的访问权限的策略。
- 划分
区间是 Oracle Cloud Infrastructure 租户中的跨区域逻辑分区。使用区间在 Oracle Cloud 中组织资源、控制对资源的访问并设置使用限额。要控制对给定区间中资源的访问,您可以定义策略来指定谁可以访问资源以及他们可以执行的操作。
- 虚拟云网络 (VCN)
OCI 中的第一步是为云资源设置虚拟云网络 (VCN)。VCN 是您在 OCI 区域中设置的软件定义网络。VCN 可以划分为多个子网,具体取决于区域或可用性域。特定于区域和可用性域的子网可以共存于同一 VCN 中。子网可以是公共子网,也可以是专用子网。
- 可用性域
可用性域是一个区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,以提供容错功能。可用性域不共享基础设施,例如电源或冷却设施,也不共享内部可用性域网络。因此,一个可用性域出现故障不太可能影响区域中的其他可用性域。
- 负载平衡器
Oracle Cloud Infrastructure Load Balancing 服务可提供从单个入口点到后端多个服务器的自动流量分配。
- 计算实例
使用 Oracle Cloud Infrastructure 计算,可以预配和管理计算主机。您可以根据自己的资源需求(CPU、内存、网络带宽和存储)启动计算实例。创建计算实例后,您可以安全地访问该实例,重新启动它,连接和分离卷,然后在不需要时终止它。
- Internet 网关
互联网网关允许在 VCN 中的公共子网与公共互联网之间通信。
-
动态路由网关 (DRG)
DRG 是虚拟路由器,用于为内部部署网络和 VCN 之间的专用网络流量提供路径,还可以用来在同一区域或不同区域中的 VCN 之间路由流量。
- 网络安全组 (NSG)
NSG 可充当云资源的虚拟防火墙。通过 Oracle Cloud Infrastructure 的零信任安全模型,所有流量都会被拒绝,并且您可以控制 VCN 中的网络流量。NSG 由一组入站和出站安全规则组成,这些规则仅应用于单个 VCN 中的一组指定 VNIC。
- 文件存储
Oracle Cloud Infrastructure 文件存储服务提供了持久、可扩展、安全的企业级网络文件系统。您可以从 VCN 中的任何裸金属、虚拟机或容器实例连接到文件存储服务文件系统。您还可以使用 Oracle Cloud Infrastructure FastConnect 和 IPSec VPN 从 VCN 外部访问文件系统。
建议
- VCN
创建 VCN 时,请确定您在每个子网中的云资源需要多少个 IP 地址。使用无类域间路由 (Classless Inter-Domain Routing, CIDR) 表示法,指定足以容纳所需 IP 地址的子网掩码和网络地址范围。使用标准专用 IP 地址空间内的地址范围。
选择与内部部署网络或任何其他网络不重叠的地址范围,以便您可以根据需要设置 VCN 与内部部署网络之间的连接。
设计子网时,请考虑流量和安全要求。将同一层或角色中的所有计算实例连接到同一子网,以实现安全边界。
- 安全性
使用策略来限制哪些人可以访问贵公司拥有的 OCI 资源及其访问方式。使用 Vault 对密钥、证书和密钥进行额外保护。
网络服务提供了两个虚拟防火墙功能,这些功能使用安全规则来控制数据包级别流量:安全列表和网络安全组 (NSG)。NSG 由一组入站和出站安全规则组成,这些规则仅应用于您在单个 VCN 中选择的一组 VNIC。例如,您可以选择在 VCN 中多层应用的 Web 层中用作 Web 服务器的所有计算实例。
NSG 安全规则的作用与安全列表规则相同。但是,对于 NSG 安全规则的源或目标,您可以指定 NSG 而不是 CIDR 块。因此,您可以轻松编写安全规则来控制同一 VCN 中两个 NSG 的流量或单个 NSG 中的流量。创建数据库系统时,您可以指定一个或多个 NSG。您还可以更新现有数据库系统以使用一个或多个 NSG。
- 计算
根据需要为每个实例选择具有适当 OCPU 和内存组合的配置,并根据需要预配本地 NVMe 和 / 或块存储。考虑使用可用的弹性配置,这种配置可以在合并 OCPU 和内存时提供更高的灵活性。
- 数据库
根据计划的工作负载选择 Oracle MySQL 数据库服务配置。为三个冗余节点启用 MySQL 高可用性。
考虑事项
在具有 MySQL Database Service 的 Oracle Linux 上部署 Moodle LMS 时,请考虑以下因素:
- 应用程序可用性和可扩展性
在此示例中,在高可用性体系结构中,我们显示了同一可用性域内不同容错域中的两个实例。您可以选择将实例放在不同的可用性域(在可用的区域中)中,来实现更高的容错能力。一种替代方法,通过使用实例池和自动缩放来表示对更苛刻和性能需求做出更动态的适应。通过实例池,您可以基于同一区域中的相同配置预配和创建多个计算实例。利用自动缩放,您可以根据性能指标(例如 CPU 占用率)自动调整实例池中的计算实例数。自动缩放有助于您在高需求期间为用户提供一致的性能,并帮助您在低需求期间内降低成本。
- 数据库可用性和可扩展性
高可用性架构中显示的 MySQL Database 系统使用内置的 MySQL 高可用性选项,该选项创建三个实例并将它们放置在不同的容错域中。
- 数据库备份
MySQL Database Service 支持两种类型的备份:对数据库系统中包含的所有数据进行完全备份,仅对自上次完全备份以来添加或更改的数据进行增量备份。备份按以下方式运行:手动:控制台中的操作或通过 API 执行的请求启动备份。手动备份至少可以保留一天,最多保留 365 天。自动:自动调度的备份在用户选择时无需进行任何必需的交互。自动备份保留 1 到 35 天。默认保留值为 7 天。如果已定义,则无法编辑自动备份的保留期
- 计算备份
Oracle Cloud Infrastructure Block Volumes 服务用于对块存储卷上的数据进行时间点备份。然后,您可以立即或稍后将这些备份还原到新卷。您还可以使用该服务对引导卷进行具有崩溃一致的时间点备份,而不会出现应用中断或停机。引导卷备份功能与块存储卷备份功能相同。
- 安全策略
使用策略来限制谁可以访问您公司的 OCI 资源以及如何访问。
- 网络安全性
网络服务提供了两个虚拟防火墙功能,这些功能使用安全规则来控制数据包级别流量:安全列表和网络安全组 (NSG)。NSG 由一组入站和出站安全规则组成,这些规则仅应用于您在单个 VCN 中选择的一组 VNIC。例如,您可以选择在 VCN 中多层应用的 Web 层中用作 Web 服务器的所有计算实例。NSG 安全规则的作用与安全列表规则相同。但是,对于 NSG 安全规则的源或目标,您可以指定 NSG 而不是 CIDR 块。因此,您可以轻松编写安全规则来控制同一 VCN 中两个 NSG 的流量或单个 NSG 中的流量。创建数据库系统时,您可以指定一个或多个 NSG。您还可以更新现有数据库系统以使用一个或多个 NSG。在这些示例中,实例显示为公共子网中的现有实例。考虑将它们放在专用子网中以提高安全性。在这种情况下,需要堡垒才能访问实例。
- 文件存储
在本例中,我们正在利用 OCI 文件存储服务。此外,多节点架构还可以在每个 OCI 计算实例级别提供单独的块存储。在这种情况下,需要执行文件同步过程(例如 rsync)。
部署
此参考体系结构的 Terraform 代码在 Oracle Cloud Infrastructure Resource Manager 中作为样例堆栈提供。您还可以从 GitHub 下载代码,并对其进行定制以满足您的特定需求。
- 使用 Oracle Cloud Infrastructure Resource Manager 中的示例堆栈进行部署:
- 在 GitHub 中使用 Terraform 代码进行部署:
- 转至 GitHub。
- 将存储库克隆或下载到本地计算机。
- 按照
README文档中的说明进行操作。
浏览更多
查看以下其他资源,了解有关 OCI 上 Oracle Cloud Infrastructure 最佳实践、Oracle MySQL 数据库服务和其他 CMS 部署的更多信息:
- Oracle Cloud Infrastructure 的优秀实践框架
- MySQL Database Service 概览
- 了解如何在 Oracle Cloud 中部署 MySQL Database Service
- 设置连接到云中 MySQL 数据库的 WordPress CMS
- 使用 MySQL Database Service 在 Oracle Linux 上部署 Drupal CMS
- 使用 MySQL Database Service 在 Oracle Linux 上部署 Joomla CMS
- 在具有 MySQL Database 服务的 Oracle Linux 上部署 Magento eCommerce

