Amazon EC2 上搭建 WordPress 全过程

前言

WordPress 是一种灵活的内容管理系统,用于构建博客、电子商务站点、讨论区等等。无论您创建何种网站,都要存储内容。对于博客而言,需要存储的内容是博客文章和评论。对于电子商务站点而言,需要存储的内容是产品和用户账户。

在本实验中,您将学习如何在亚马逊云科技中,使用 EC2 设置 WordPress 站点来运行博客。WordPress 需要一个 MySQL 数据库来存储其数据。对于本次实验,您还将使用 Amazon RDS for MySQL 来运行您的 MySQL 数据库。

关于本教程
预计部署时间 快速上手教程 – 5 分钟 ~10 分钟
费用 免费套餐
主题 通过部署 wordpress 快速建站
受众 全栈开发人员,开发运维工程师,系统管理员
级别 初级
相关产品 Amazon EC2, Amazon RDS
相关行业 通用
上次更新日期 2023 年 6 月

前提条件

进入开发环境

在部署您的网站之前,请确保您满足以下条件:

  • 拥有亚马逊云科技海外区域账户
    • 点击右侧按钮“登陆控制台”进入开发环境。
    • 如果您还没有账户,请先注册账户。海外区域业务或个人使用,请注册“海外区账户”。

教程说明

  • 在本模块中,您将通过 VPC 创建向导为 WordPress 站点创建一个包括有公有子网和私有子网的 VPC。通常来说,对必须连接互联网的资源放置在公有子网,对不会连接到互联网的资源放置在私有子网,以提升整体架构的安全性。因此在实验中,WordPress 的 Web 务器位于公有子网之内,数据库服务器则位于私有子网。

    在下面的步骤中,您将使用亚马逊云科技管理控制台中的 VPC 启动向导创建一个包括有公有子网和私有子网的 VPC。

    • 在页面顶部的搜索框搜索 VPC,并点击。
    • 单击橙色的“启动 VPC 向导”按钮
    • 在 VPC 创建向导中您可以对 VPC 进行一些配置。本次实验您需要填写 VPC 的名字,例如 WordPress。其他保持默认,在页面底部点击橙色 “创建 VPC” 按钮
    • 您应会看到 VPC 启动向导创建的有关 VPC 资源。等待所有进程创建完毕后,您可以点击橙色 View VPC 按钮,查看创建后的 VPC。
    • * 查阅创建后的子网名称、子网 ID、IPv4 CIDR 以及可用区。在左侧菜单栏选择 “子网”,在筛选输入栏中输入”wordpress”,打开记事本并记录相关子网名称、子网 ID 以及可用区信息。

    在本模块中,您使用VPC启动向导创建了一个Amazon VPC用于将 Amazon 资源启动到您定义的虚拟网络中。在下一个模块中,您将创建 Amazon EC2 实例以运行 WordPress 站点。

  • 在本模块中,您将创建一个 Amazon EC2 实例来运行您的 WordPress 网站。Amazon EC2 按需提供高度可配置的服务器实例。在 EC2 实例上,您可以运行可供各地用户访问的 WordPress 网站。

    Amazon EC2 提供按需服务器预置。借助 Amazon EC2,您可以租用具有不同大小、CPU、RAM 和网络配置的服务器实例。这些服务器按使用时间计费,您可以使用它们来托管网站(例如 WordPress 网站)。使用 EC2 实例后,您的 WordPress 网站将能持续运行,并且任何人都可以通过互联网访问它。

    在以下步骤中,您将启动一个 EC2 实例来托管您的 WordPress 网站。

    • 在控制台搜索 EC2,并点击,进入 EC2 控制面板
    • 点击橙色“启动实例”按钮,进入 EC2 创建向导
    • 填写 EC2 实例名称,本实验填写 WordPress
    • 选择 Amazon 系统映像(AMI)。AMI 将决定新 EC2 实例上安装的基本软件,其中包括操作系统(Amazon Linux、Red Hat Enterprise Linux、Ubuntu、Microsoft Server 等)以及计算机上安装的应用程序。
    本次实验请在 AMI 选择视图中选择 Amazon Linux 2 AMI (HVM) - Kernel 5.10,架构选择 64 位 (ARM)。
    • 选择 EC2 实例类型。实例类型是 CPU、内存 (RAM)、存储和网络容量的特定配置。本次实验选择t4g.small,请您在搜索框中输入t4g.small,并选择t4g.small型号。
    • 创建用于登陆 EC2 实例的密钥对,并保存。

    您将使用密钥对通过 SSH 访问实例,从而使您能够在服务器上运行命令。

    为您的实例创建新的密钥对,并为其命名。根据连接方式选择密钥类型(pem/ppk)然后,单击下载密钥对按钮,将 .pem/.ppk 文件下载到您的计算机上,妥善保管以便在后续实验中使用。

    • 为实例配置网络详细信息。点击右上角编辑按钮,选择对应名为 WordPress 的 VPC,及一个公有子网(subnet-public),并启用自动分配公有 IP 选项。
    • 为实例配置安全组,在这里为 WordPress 实例创建一个安全组。安全组名称填写 wordpress-sg,填写描述信息。亚马逊云科技中的安全组(Security Group)充当虚拟防火墙,描述了可以访问资源网络流量类型,这意味着您可以使用安全组控制到资源的流量。
    • 为安全组添加规则。根据通常情况,需要允许两种类型的流量访问您的 WordPress 资源:
    • 来自您当前 IP 地址的 SSH 流量,让您可以使用 SSH 协议登录到 EC2 实例并配置 WordPress;
      • 在规则区域,其中已配置了 SSH 规则,但是它允许从任何 IP 地址进行 SSH 访问。在源类型下方单击列表,选择我的 IP。
    • 来自所有 IP 地址的 HTTP 流量,让用户可以查看您的 WordPress 网站。
      • 点击添加安全组规则,在新建的安全组规则中,单击类型列下方的下拉列表。选择 HTTP,在源类型下方单击列表,选择任何位置。
    • 为实例设定存储大小,根据需求填写。本实验建议设定 20GB-30GB。
    • 在高级详细信息的用户数据中,复制以下脚本,该脚本将安装并配置 Apache、PHP、MySQL 客户端服务。
    • 检查实例创建信息,尤其是 VPC、子网信息,点击右侧橙色按钮“启动实例”。
    • 点击实例 ID 查看启动状态。当实例状态成为“正在运行”以及“状态检查”通过,则实例成功启动。

    您已成功启动 EC2 实例。在下一个模块中,您将使用 Amazon RDS 启动 MySQL 数据库实例用于存储WordPress的内容。

  • 在本模块中,您将为 WordPress 站点创建 MySQL 数据库。在您创建数据库之前,让我们了解一下为何 Amazon RDS 能很好地满足您的数据库需求。

    WordPress 的内容需要永久存储在某个地方。WordPress 使用 MySQL 数据库来存储这些内容。维护您的 WordPress 站点数据库至关重要。您的数据库实例中保存关于您的 WordPress 站点的所有重要数据。如果数据库发生故障,您的网站可能也会随之崩溃,您甚至可能会丢失数据。

    许多 WordPress 安装指南将用于 WordPress 的 MySQL 部署在与 WordPress 的同一台服务器上。虽然这可能足以满足初始需求,但出于以下几个原因,您可能并不希望 MySQL 数据库与 WordPress 安装到相同服务器上:

    • MySQL 和 WordPress 将争用同一服务器上的计算资源,这可能会降低站点性能。
    • 随着您的站点变得越来越受欢迎,您无法通过添加额外的 WordPress 服务器来横向扩展 WordPress。
    • 您要负责执行所有数据库维护任务,包括数据库备份和安全升级。

    通过使用 Amazon RDS for MySQL,可以消除这些问题。数据库与 WordPress 部署在分别的实例中。因此,它们将不会争用资源。此外,您可以创建多个 WordPress 安装,并连接到 Amazon RDS for MySQL 的实例,从而实现横向扩展站点。最后,Amazon RDS for MySQL 能自动执行备份和安装安全补丁,有效帮助您管理数据库。

    在下面的步骤中,您将使用亚马逊云科技管理控制台启动 MySQL 数据库。

    • 在控制台搜索 RDS,并点击,进入 RDS 控制面板。
    • 创建数据库子网组,以限定 MySQL 实例在私有子网中。

    数据库子网组是您在 VPC 中创建并随后指定给数据库实例的子网集合。通过数据库子网组,您可以在创建数据库实例时指定特定的 VPC。

    在左侧菜单栏选择子网组,单击橙色的 “创建数据库子网组” 按钮。填写子网组名称 wordpress-db-subnet-group、子网组描述,并选择名称为 WordPress 的 VPC

    • 根据之前创建 VPC 时记录的子网信息,在添加子网区域中,选择子网所在的可用区。
    • 根据之前创建 VPC 时记录的子网信息,在选择子网下拉框中选择不同可用区中的两个私有子网。检查相应信息,并点击橙色“创建”按钮
    • 在左侧菜单栏选择控制面板,单击橙色的 “创建数据库” 按钮开始创建数据库
    • 单击橙色的 “创建数据库” 按钮开始创建数据库,选择标准创建,选择要使用的数据库引擎。WordPress 使用 MySQL,因此选择 MySQL 引擎。
    • 在创建向导的模板部分中,预置了生产,开发 / 测试和免费套餐三种模版。后面修改相关的功能配置:
    • 更大的数据库实例类,用于提高性能;
    • 多可用区部署,用于在发生基础设施问题时自动执行故障转移和恢复;
    • 适用于磁盘存储的预置 IOPS,用于提高 I/O 性能。
    本次实验使用免费套餐模版,并选择单可用区数据库实例
    • 随后您将为 MySQL 您将为 MySQL 部署指定身份验证设置,其中包括数据库名称、主用户名和密码。
    在设置部分中,输入 wordpress-db-instance 作为数据库实例标识符,然后指定数据库的主用户名和密码。选择安全程度高的密码以帮助保护您的数据库。妥善保管并记录用户名和密码,以供后面的模块使用。
    • 接下来,您需要配置连接和网络配置。必须在 Amazon VPC 中创建 Amazon RDS 实例。请选择先前创建的名为 WordPress 的 VPC,并自动选择之前创建的子网组。
    • 为该数据库实例新建一个安全组,命名为wordpress-db-sg
    • 最后,RDS 还提供了许多其他配置选项,用于自定义您的部署。您需要在此区域中进行一项更改。单击其他配置行以展开选项。
     
    将初始数据库名称设置为wordpress。这将确保 RDS 在初始化时在 MySQL 实例中创建数据库。在连接到数据库时,您将使用此数据库名称。
    • 在创建向导的底部,单击橙色的 “创建数据库” 按钮以创建数据库。您应会看到一条成功通知,提示正在创建数据库。创建时间可能需要花费若干分钟,等待创建的同时您可以进行下一模块的步骤。

    在本模块中,您使用 Amazon RDS 创建了一个完全托管的 MySQL 数据库。在下一个模块中,您将学习如何连接 EC2 实例。

    • 允许您的 EC2 实例访问 RDS 数据库

    在之前创建 EC2 的模块,您创建了安全组规则,允许 SSH 和 HTTP 流量访问您的 WordPress EC2 实例。此处适用同样的原则。但是这一次您希望允许某些流量从 EC2 实例访问 RDS 数据库。

    要进行配置,请在新的标签页打开 RDS 数据库控制台。单击您在本实验先前的模块中创建的 MySQL 数据库。在安全组规则区域点击安全组条目。

    • 单击入站规则选项卡,然后单击编辑入站规则更改安全组规则。
    • 单击入站规则选项卡,然后单击编辑入站规则更改安全组规则
     
    默认安全组设有一个规则,该规则在建立 RDS 数据库时根据您的 IP 地址生成。但是,由于您的 WordPress EC2 实例不在该安全组中,因此它无权访问 RDS 数据库。
     
    删除自动创建的安全组规则。点击左下角 “添加规则” 按钮,创建一条新的规则,在类型中选择 MySQL/Aurora。在源后的输入栏中输入 “wordpress-sg”,并选择对应的安全组。点击右下角的 “保存规则” 按钮。
  • 到目前为止,您已完成了许多配置设置。您创建了 RDS 实例和 EC2 实例。您已允许从 EC2 实例通过网络访问 RDS 实例。您还学习了如何通过 SSH 或者会话连接器 访问 EC2 实例。

    在本模块中,您将完成剩余的工作,以将 WordPress 网站上线。本模块结束后,您可从世界各地通过浏览器访问您安装好的 WordPress 网站。

    • 测试 WordPress 默认页面

    转到 EC2 实例页面并找到您的实例。在下面的详细信息中,找到实例的公有 (IPv4) 地址。

    复制 IP 地址,在 Web 浏览器中输入此值,然后,您会看到 WordPress 欢迎页面及安装过程。

    • 使用 WordPress 安装界面添加数据库信息

    点击现在开始,在数据库配置页面填写对应信息。

    数据库名:之前创建数据库输入的数据库名

    用户名及密码:之前创建的主用户名及密码

    数据库主机:主机名为数据库实例的终端节点,在数据库实例的详细信息中查看。

    填写完毕后,点击提交,连接数据库成功。您可以自行配置后续有关 WordPress 的设定。

    注意:我们建议遵循最小权限原则,创建一个专用于 WordPress 的数据库用户,而不是使用 RDS 数据库的管理用户。详情可以参考 1.8 节【提升数据库的安全性】为 WordPress 数据库创建专属的用户,并在此步替换连接的数据库用户名和密码。

    以上就是所有步骤。至此,您安装好了可公开访问的在线 WordPress 网站,它使用 Amazon RDS 上的完全托管的 MySQL 数据库。
  • 在本实验中,您已经学习了如何设置 WordPress 站点来运行网站。WordPress 需要一个 MySQL 数据库来存储其数据。对于此实验,您使用 Amazon RDS for MySQL 来运行您的 MySQL 数据库。

    请确保您拥有所需服务的完全访问权限。如果您在账号创建方面存在问题,请联系您的销售顾问。如果您的账号缺少所需服务的权限,请联系您账号所属组织的管理员。