tencent cloud

文档反馈

快速部署 Wordpress 原生应用

最后更新时间:2021-08-20 16:21:27

    腾讯云 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 电话支持