安装WordPress和phpMyAdmin环境

更新时间:
复制 MD 格式

本方案使用阿里云资源编排服务(ROS)的公共模板,一键创建高可用、可弹性伸缩的WordPress博客集群和phpMyAdmin数据库管理环境。

方案概述

本方案使用阿里云资源编排服务(ROS)的公共模板,一键创建高可用、可弹性伸缩的WordPress博客集群和phpMyAdmin数据库管理环境。适用于需要网站部署(具备自动扩缩容、负载均衡、数据库独立托管能力)的场景。

什么是WordPressphpMyAdmin

  • WordPress:使用PHP语言和MySQL数据库开发的开源博客/CMS平台,全球超过40%的网站使用WordPress搭建。

  • phpMyAdmin:基于PHPWebMySQL数据库管理工具,让管理者通过浏览器界面管理MySQL数据库(查看表结构、执行SQL、导入导出数据等)。

创建的资源清单

序号

资源名称

ROS资源类型

数量

用途说明

1

专有网络VPC

ALIYUN::ECS::VPC

1

提供隔离的网络环境

2

交换机VSwitch

ALIYUN::ECS::VSwitch

1

VPC中划分子网,指定可用区

3

ECS云服务器实例

ALIYUN::ECS::Instance

1

初始WordPress节点,用于安装WordPressphpMyAdmin

4

RDS MySQL实例

ALIYUN::RDS::DBInstance

1

托管WordPress数据,所有ECS节点共享此数据库

5

弹性公网IP(EIP)

ALIYUN::VPC::EIP

2

分别用于ECS外网访问和NAT网关出网

6

NAT网关

ALIYUN::VPC::NatGateway

1

为弹性伸缩组中的ECS节点提供公网访问能力(SNAT)

7

负载均衡(SLB)

ALIYUN::SLB::LoadBalancer

1

HTTP流量分发到多台WordPress节点

8

弹性伸缩组

ALIYUN::ESS::ScalingGroup

1

根据流量负载自动增减WordPress ECS节点

部署完成后获得的结果

模板成功执行后,您将获得:

  • 一个完整的VPC网络环境(VPC + 交换机)

  • 一台已安装WordPressphpMyAdminECS实例(带公网IP,可直接访问)

  • 一个RDS MySQL数据库实例(已创建WordPress数据库和账号)

  • 一个负载均衡实例(对外提供WordPress访问入口)

  • 一个弹性伸缩组(可根据负载自动添加新的WordPress节点)

  • 一个NAT网关(为伸缩组中新建的ECS提供公网访问能力)

  • 资源栈输出中提供WordPress访问URLphpMyAdmin管理地址

架构图

                        用户访问
                          ↓
                          负载均衡(CLB) ←──  公网(yum源等) ←── NAT网关
                     ↙     ↓     ↘
               ECS-1    ECS-2    ECS-N    ← 弹性伸缩组自动管理
               (WordPress + phpMyAdmin)
                     ↘     ↓     ↙
                    RDS MySQL(共享数据库)

前提条件

在使用本模板前,请确认以下条件:

  • 账号权限:您的阿里云账号需要具有ECS、RDS、VPC、SLB、ESS(弹性伸缩)产品的创建权限。

  • 基础知识:了解ROS模板的基本语法和结构。详情请参见模板快速入门

方案设计说明

为什么需要弹性伸缩?

单台ECS部署WordPress在流量低时运行良好,但当遇到流量突增(如热门文章被转发)时会导致网站卡顿甚至宕机。弹性伸缩组会:

  1. 监控现有ECSCPU利用率或网络流量

  2. 当负载超过阈值时,自动基于伸缩配置模板创建新的ECS实例

  3. ECS自动注册到SLB后端,开始分担流量

  4. 当负载降低后,自动释放多余的ECS实例,节省费用

为什么使用RDS而非ECS本地MySQL?

  • 数据持久性:ECS伸缩时会被创建/释放,本地MySQL数据会丢失;RDS独立存在,数据持久保存

  • 多节点共享:多台WordPress ECS节点需要读写同一份数据,必须使用集中式数据库

  • 专业运维:RDS提供自动备份、主从复制、监控告警等企业级数据库功能

为什么需要NAT网关?

弹性伸缩组中新建的ECS节点没有公网IP(为了安全性),但它们需要访问公网来:

  • 安装WordPress和依赖包(yum/apt源)

  • 下载WordPress插件和主题

NAT网关通过SNAT规则让VPC内所有节点共享一个EIP出网访问,无需每台ECS都分配公网IP。

CLB + 弹性伸缩组的协作关系

组件

职责

CLB(传统负载均衡)

接收用户HTTP请求,按策略分发到后端ECS列表

ESS ScalingGroup

管理ECS节点的数量,自动创建/释放实例

ESS ScalingConfiguration

定义新建ECS的规格模板(镜像、规格、初始化脚本)

SLB BackendServer

伸缩组自动将新建ECS注册为SLB后端服务器

部署环节

参数配置

必需输入参数(部署时需填写)

参数名

类型

说明

约束

可用区ID

String

交换机可用区,ECSRDS将部署在此可用区

控制台动态选择

实例类型

String

ECS实例规格,建议24GB以上

ecs.g6.large

镜像ID

String

ECS操作系统镜像

centos_7_04_64_20G_alibase_201701015.vhd

系统盘类型

String

系统盘类型

cloud_efficiency(高效云盘)

实例密码

String

ECS登录密码

长度8~30,含大小写+数字+特殊字符

规格

String

负载均衡实例规格

slb.s1.small

实例系列

String

RDS 实例系列,可选值:

  • 基础版

  • 高可用版

  • MySQL集群系列

基础版

RDS 实例类型

String

RDS数据库实例规格

rds.mysql.s1.small

数据库引擎版本

String

MySQL版本号

5.7

存储大小

Number

RDS存储空间(GB)

范围5~2000,步长5

数据库名称

String

WordPress使用的数据库名

wordpress

用户名称

String

RDS数据库账号

wpuser

用户密码

String

RDS数据库密码

长度8~30,含大小写+数字+特殊字符

可选配置参数说明

本公共模板的所有参数均需在部署时填写,无默认值。建议首次部署时参考上表“示例值”列填写。

部署方式

方式一:通过ROS公共模板部署(推荐)

  1. 登录资源编排控制台

  2. 在左侧导航栏,选择 模板 > 公共模板 > 入门模板

  3. 在顶部菜单栏选择资源栈所在地域(如华东1杭州)。

  4. 搜索模板名称:创建一个WordPress可弹性伸缩的集群

  5. 单击 创建资源栈

  6. 配置参数页面,输入资源栈名称并填写上述部署参数。

  7. 单击 下一步:检查并确认,然后单击 创建

  8. 等待资源栈状态变为 CREATE_COMPLETE

  9. 单击资源栈的 输出 页签,获取 WordPressUrl 访问地址。

方式二:通过ROS IaC Code 部署

IaC Code 是面向云基础设施的 AI 基础设施即代码助手,可根据自然语言描述生成 ROS 模板并部署,使用方式参见IaC Code快速入门

# Prompt
帮我创建一个高可用的WordPress集群,具备弹性伸缩能力。
要求:
1. 新建VPC和VSwitch作为基础网络。
2. 创建RDS MySQL 5.7实例作为WordPress数据库,数据库名为wordpress。
3. 创建一台ECS实例安装WordPress和phpMyAdmin。
4. 创建SLB负载均衡作为网站入口。
5. 创建ESS弹性伸缩组,使用与初始ECS相同的配置模板。
6. 创建NAT网关和SNAT规则,为伸缩组内ECS提供公网访问。
7. 安全组开放80端口(HTTP)和22端口(SSH)。
8. 资源栈输出WordPress访问URL。

部署后操作

访问WordPress

  1. 在资源栈 输出 页签获取 WordPressUrl

  2. 在浏览器中访问该URL。

  3. 首次访问会进入WordPress安装向导,设置站点标题、管理员账号等。

  4. 完成后即可登录WordPress后台(/wp-admin)发布内容。

常见问题

Q1: 部署失败,报错“The specified InstanceType is not available”

原因:所选ECSRDS实例规格在指定可用区中没有库存。

解决方案

Q2: WordPress页面打开很慢或超时

排查步骤

  1. 检查SLB状态:确认SLB健康检查是否正常(SLB控制台 > 实例 > 后端服务器),如果ECS健康检查失败,SLB不会将流量转发过去。

  2. 检查RDS连接登录ECS实例,执行 mysql -h<RDS内网地址> -u<用户名> -p 测试数据库连通性。

  3. 检查ECS资源:执行 topfree -m 查看CPU和内存是否已满载,如已满载说明需要触发伸缩扩容。

Q3: 弹性伸缩没有自动扩容

原因及排查

  1. 前往性伸缩控制台,确认伸缩组状态为“启用”。

  2. 检查是否配置了伸缩规则和报警任务(如基于CPU利用率的报警触发)。

  3. 本公共模板创建了伸缩组和伸缩配置,但可能需要手动添加伸缩规则:

    • 进入性伸缩控制台,找到对应伸缩组 ,点击伸缩规则与报警任务页签。

    • 添加规则:当 CPU > 70% 时增加1台,当 CPU < 30% 时减少1台。

    具体操作可参照配置伸缩规则

想要了解更多资源部署问题,可以查询常见问题合集

相关文档