腾讯云 Serverless 提供了基于 Serverless 架构的 WordPress 全新部署方式,通过 Serverless Cloud Framework WordPress 组件,仅需几步,就可以快速部署一个 WordPress 项目。
架构简介
该组件主要为您创建以下资源:
模块 | 说明 |
云函数 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.4 更新完成后,解绑老版本的 Layer 即可。
4. 流量切换
完成以上步骤后,参考步骤1中的函数流量配置操作,重新将您的 wp-server-* 函数的流量切换到 $LATEST,即可完成升级。
功能限制
无论是经过升级的存量 Serverless Wrodpress 站点,还是增量站点,都不支持原生的 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 '/'"}?
如何通过修改 php.ini 修改上传文件大小限制?
1. 修改 layer 代码。将 etc 文件夹中的 php.ini 文件移到 etc/php.d 文件夹下,您也可以直接使用我们提供的 压缩包。
重新打包上传 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以内。<br/>