一、架构简介
该组件主要为你创建以下资源:
| 模块 | 说明 |
| 云函数 SCF | 负责 Serverless WordPress 的接入层实现,从而运行 WordPress。 |
| API 网关 | WordPress 的对外入口,实现了 RESTful API。 |
| 文件储存 CFS | WordPress 的 Serverless 存储仓库。 |
| 云原生数据库 TDSQL-C(可选) | 通过创建 TDSQL-C(原 CynosDB)的 MySQL 类型数据库,实现数据库按量计费,自动扩缩容。你可以选择不使用默认数据库,连接自建的 MySQL 类型数据库。 |
| 私有网络 VPC(默认 VPC) | 内网打通云函数 SCF、CFS、TDSQL-C Serverless 之间的网络,保障网络隔离。你也可以选择不使用默认 VPC,连接自己指定的 VPC。 |
二、功能优势
·支持使用自建数据库
支持直接使用你自己的 MySQL 数据库,省去冷启动问题。
·降低使用成本
计算层使用 Serverless 资源,真正做到按量计费,弹性伸缩,极大节省成本。
·部署步骤简单
通过 Serverless 控制台, 仅需几步配置,即可快速完成 WordPress 应用部署,极大降低部署门槛。
三、部署步骤
你可以通过控制台快速完成 Serverless WordPress 部署,步骤如下:
四、前提条件
·已开通 云函数 SCF 服务。
·已开通 文件存储 CFS 服务。
·(可选)准备好已备案的自定义域名,你也可以通过 Serverless 备案资源包完成备案(详情请参见 ICP 备案)。
五、控制台部署
注意:目前只支持北京、上海、广州三个地域。其中广州四区为默认区域。
1. 登录 Serverless 控制台, 单击新建应用。
2. 单击新建应用,选择应用市场 > 快速部署一个WordPress框架,单击下一步。
3. 输入应用名。你可以选择使用默认的或连接自建数据库和指定私有网络。
选择使用默认的数据库和私有网络选择连接自建数据库和私有网络如果你选择使用默认的数据库和私有网络,单击完成即可完成应用创建。
如果你选择连接自建数据库和私有网络,可以在高级配置勾选对应的启用并进行配置。你可以连接有内网 IP 的数据库,也可以连接有公网 IP 的数据库。如果选择连接内网 IP 的数据库,你需要配置私有网络,请注意你的自建数据库所在地域与应用部署地域需要相同。如果选择连接公网 IP 的数据库,你也可以不启用指定的私有网络,继续使用默认的私有网络。单击完成完成应用。
4. 在 Serverless 应用页,单击访问应用,即可访问你的 WordPress 项目。
你也可以单击你的应用名称,查看资源列表和部署日志。在资源列表页,你可以单击新增配置你的自定义域名。
六、版本升级
Serverless WordPress 应用的旧版部署架构中,存在访问速度慢的问题。为此 Serverless 应用开发团队针对此问题进行了 Serverless WordPress 应用的优化工作,改进了部署架构,大幅提升了站点的访问速度。本指引仅适用于 Serverless WordPress 应用旧版本的部署升级。
注意:说明:
注意:你可通过如下方法确认你的应用是否需要升级:如你的站点可正常访问并且 WordPress 云函数代码中仅包含一个 'scf_bootstrap' 文件,则可进行升级。
七、前期准备
你已经部署了 Serverless WordPress 应用,站点所对应的云函数前缀为 wp-server-*。
八、操作步骤
注意:请严格按照如下步骤升级你的站点,并使用本指引中提供的 WordPress 源码包进行代码更新。
1. 发布函数版本和流量切换
为了确保升级操作期间你的站点的正常访问,请首先为 wp-server-* 发布一个版本。操作详情见 发布版本。
发布版本后,将函数的默认流量配置到新版本。操作详情见 流量路由配置。
2. 更新 $LATEST 版本的函数代码
下载 wordpress 源码包(source.zip),并上传更新函数代码。
注意:切勿轻易修改代码中的 handler.php 和 wp-config.php 文件,否则将导致你的站点访问异常。
3. 更新 Php 版本(可选)
此步骤为可选,Serverless WordPress 应用站点的 Php 依赖位于函数的挂载 Layer 中,你可以选择是否升级站点的 Php Runtime 环境,升级后的 Php Runtime 版本为 php 7.4.25。在此版本中,使用了 Php Opcache 功能,在函数实例预置场景下,可进一步提高你的站点访问速度。操作步骤如下:
3.1 下载 Php Runtime 源码包(php74.zip)。
3.2 在 Serverless 控制台 新建层。详情见 创建层。
3.3 在 函数服务 中绑定层。详情见 云函数绑定层。
3.4 更新完成后,解绑老版本的 Layer 即可。
4. 流量切换
完成以上步骤后,参考步骤1中的函数流量配置操作,重新将你的 wp-server-* 函数的流量切换到 $LATEST,即可完成升级。
九、功能限制
无论是经过升级的存量 Serverless WordPress 站点,还是增量站点,都不支持原生的 WordPress 版本升级功能。
十、权限问题导致部署失败该如何处理?
·主账号/子账号需确认是否有以下权限:
·确认角色:SCF_QcsRole、SLS_QcsRole、CODING_QcsRole
·确认权限:
·SCF_QcsRole 须拥有 CFSFullAccess 权限。
·CODING_QCSRole 须拥有 QcloudSLSFullAccess、QcloudSSLFullAccess、QcloudAccessForCODINGRole 权限。
·子账号还需确认以下权限:
账号本身有 SLS、SCF、CFS、CynosDB、CODING 使用权限。
十一、绑定自定义域名后,显示报错 {"message":"There is no api match env_mapping '/'"}?
在 API 网关控制台 修改自定义映射:
十二、如何通过修改 php.ini 修改上传文件大小限制?
1. 修改 layer 代码。将 etc 文件夹中的 php.ini 文件移到 etc/php.d 文件夹下,你也可以直接使用我们提供的 压缩包。
1. 重新打包上传 layer 时,注意打包层级结构,只打包父文件夹下的文件,否则会出现函数初始化失败:
2. 按照如下修改 wp-server-xxx 函数的 bootstrap 代码:
#!/bin/bashexport PATH="/opt/bin:$PATH"export LD_LIBRARY_PATH=/opt/lib/:$LD_LIBRARY_PATHexport PHP_INI_SCAN_DIR=/opt/etc/php.dphp -d extension_dir=/opt/lib/php/modules/ sl_handler.php 1>&2
十三、如何处理报错 "event too large"?
函数目前只支持最大6MB的事件上传,超过该大小文件不支持上传。
目前 API 网关 base 64转码会将用户本身代码大小扩大1.5倍左右,因此上传文件时,建议文件大小控制在3.5MB以内。