tencent cloud

文档反馈

快速部署 Wordpress 原生应用

最后更新时间:2024-11-28 17:42:45
    腾讯云 Serverless 提供了基于 Serverless 架构的 Wordpress 全新部署方式,通过 Serverless Framework Wordpress 组件 ,仅需几步,就可以快速部署一个 Wordpress 项目。

    架构简介

    该组件主要为您创建以下资源:
    模块
    说明
    云函数 SCF
    负责 Serverless Wordpress 的接入层实现,从而运行 WordPress。
    API 网关
    WordPress 的对外入口,实现了 RESTful API。
    CFS
    WordPress 的 Serverless 存储仓库。
    TDSQL-C Serverless
    通过创建 TDSQL-C Serverless (原 CynosDB) 的 MySQL 类型数据库,实现数据库按量计费,自动扩缩容。
    VPC
    内网打通 SCF 云函数、CFS、TDSQL-C Serverless 之间的网络,保障网络隔离。

    功能优势

    支持 Wordpress 原生框架 使用 Serverless Wordpress 组件,您无需对原生 Wordpress 项目进行任何改造,即可直接完成部署,做到对框架无入侵,也支持后续的版本升级。
    降低使用成本 从接入层到计算层到存储层,全部使用 Serverless 资源,真正做到按量计费,弹性伸缩,极大节省成本。
    部署步骤简单 通过 Serverless Wordpress 组件,只需几行 YAML 文件配置,即可快速完成 Wordpress 应用部署,极大降低部署门槛。

    部署步骤

    您可以通过命令行控制台完成 Serverless Wordpress 部署,步骤如下:

    前提条件

    (可选)准备好的自定义域名。

    控制台部署

    注意:
    目前只支持北京、广州、南京、上海四个区域。
    1. 登录 Serverless 应用控制台, 单击新建应用
    2. 根据指引,填入应用名称,选择应用模板 > Wordpress 应用,单击创建即可以完成应用新建。
    3. 在 Serverless 应用页,单击访问应用,即可访问您的 Wordpress 项目,您也可以在应用详情页完成自定义域名的配置。

    命令行部署

    注意:
    目前只支持 ap-guangzhou-4ap-shanghai-2ap-beijing-3ap-nanjing-1 四个可用区。
    1. 本地创建 wordpress-demo 文件夹,在 Wordpress 官网 下载应用到该文件夹内。
    2. 在文件夹内创建 serverless.yml 配置文件,完成应用信息配置,参考如下(更多配置内容,请参见 全量配置文档):
    app: wordpress
    stage: dev
    component: wordpress
    name: wordpressDemo
    inputs:
    region: ap-shanghai # 项目所在区域
    zone: ap-shanghai-2
    src: # 项目路径,选择您的 wordpress 路径
    src: ./wordpress
    exclude:
    - .env
    apigw: # api网关配置
    customDomains: # (可选)自定义域名绑定
    - domain: abc.com # 待绑定的自定义的域名
    certId: abcdefg # 待绑定自定义域名的证书唯一 ID
    customMap: true # 是否自定义路径
    pathMap:
    - path: /
    environment: release
    protocols: # 绑定自定义域名的协议类型,默认与服务的前端协议一致。
    - http
    - https
    
    完成后,您的项目结构如下:
    .wordpress-demo
    ├── wordpress # wordpress 源文件
    ├── serverless.yml # 配置文件
    └── .env # 环境变量文件
    
    3. 在根目录下,执行 sls deploy,即可完成部署。示例如下:
    $ sls deploy
    serverless ⚡framework
    Action: "deploy" - Stage: "dev" - App: "appDemo" - Instance: "wordpressDemo"
    region: ap-shanghai
    zone: ap-shanghai-2
    vpc:
    ...
    cfs:
    ...
    db:
    ...
    apigw:
    created: true
    url: https://service-xxxxx.sh.apigw.tencentcs.com/release/
    ...
    layer:
    ...
    wpInitFaas:
    ...
    wpServerFaas:
    ...
    
    4. 部署成功后,单击 apigw 部分输出的 URL,根据指引完成账号密码配置,即可开始使用您的 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 文件夹下,您也可以直接使用我们提供的 压缩包。 重新打包上传 layer 时,注意打包层级结构,只打包父文件夹下的文件,否则会出现函数初始化失败:
    
    
    2. 按照如下修改 wp-server-xxx 函数的 bootstrap 代码:
    #!/bin/bash
    export PATH="/opt/bin:$PATH"
    export LD_LIBRARY_PATH=/opt/lib/:$LD_LIBRARY_PATH
    export PHP_INI_SCAN_DIR=/opt/etc/php.d
    php -d extension_dir=/opt/lib/php/modules/ sl_handler.php 1>&2

    如何处理报错 "event too large"?

    函数目前只支持最大6MB的事件上传,超过该大小文件不支持上传。
    目前 API 网关 base 64转码会将用户本身代码大小扩大1.5倍左右,因此上传文件时,建议文件大小控制在3.5MB以内。

    如何修改 Wordpress 根目录文件?

    目前文件挂载在文件存储 CFS 上,无法直接修改,建议通过安装 File Manager 插件管理根目录文件。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持