# Discuz! Q

云开发支持一键部署 Discuz!Q 应用。通过云托管结合静态网站托管、共享文件存储 CFS、云数据库 CynosDB for MySQL 等各项云计算资源能力,为您提供高性能、高可靠性、可弹性扩缩容的的应用体验。

方案特性 介绍
省钱 云托管没有流量可缩容到 0;存储按实际存储容量计费。无需为闲时资源买单。按量付费,无需预先支出
省心 Serverless 无服务器化,架构弹性可自动扩缩容,无需担心网站崩溃
更快 用户发帖上传的图片与附件,享受 CDN 节点就近加速分发
更便捷 自带三级域名可以快速访问,无需通过 IP 访问

# 适用场景

  • 不具备专业的运维开发人员的个人站长,无需预估业务规模,可自动扩缩容。
  • 访问流量不稳定,无流量时,云托管将自动缩容到 0,减少成本。
  • 对数据安全要求敏感的行业,数据独立存储在专业的云数据库 CynosDB for MySQL 中。

# 部署架构配置

资源 架构
云托管 默认配置 0.25 核 0.5G 内存的容器,伸缩范围 0 - 4 个实例,遇到 CPU 负载大于 60 将会进行扩容。无流量则会缩容到 0,不产生费用
静态网站托管 按照实际容量与流量付费
共享文件存储(Cloud File Storage,CFS) 按照实际容量付费,DAU 1000 的站点预估消耗量在 5GB 以下
云数据库 CynosDB for MySQL 数据库 1C1G,存储按照容量计费

安装 Discuz! Q 资源配置架构图如下: 架构图

# 安装流程

  1. 登录 云开发控制台
  2. 单击【新建环境】,新建一个按量计费环境,详情可参见 开通环境 文档。
  3. 环境创建完后,单击【环境卡片】,进入环境管理页面。
  4. 单击左侧导航栏底部的 【扩展应用】,在更多扩展能力中,可以看到 Discuz!Q 应用。 disucz入口
  5. 在 Discuz!Q 应用中,单击【安装】,进入扩展安装流程。
    • 确认应用相关资源
    • 授予云开发相关资源的操作权限
    • 扩展云资源准备,声明会依赖的 2 个资源(文件存储、云数据库)
    • 扩展程序配置,请勿长期使用默认的密码,注意修改密码,避免管理后台被他人登录 disucz安装
  6. 已安装列表里显示 Discuz!Q 应用正在安装中,安装完成后单击可进入详情页。
  7. 详情页内,可以查看 Discuz!Q 的访问地址。 discuz详情页

# 部署异常

安装过程中可能遇到一些异常,请根据异常提示查看以下解决方案进行解决。如果遇到无法解决的问题,请 提交工单 联系我们,我们将协助你解决。 安装异常

# 账户余额不足

Discuz!Q 应用创建时,会一同创建云数据库 CynosDB for MySQL。创建数据库资源会预先扣 1 个小时的费用,为了保证服务的可用,推荐先 充值腾讯云账户 5 元钱。

# HTTP 访问服务 “/” 路径已经被占用

Discuz!Q 将会占用 “/” 路径,如果当前环境的 “/” 已经被占用,推荐再创建一个按量计费环境进行安装。

# CynosDB 被隔离

错误信息 queryClusterDetail failed, err=DescribeClusters invalid response.detail.status[isolated],代表 CynosDB 集群被隔离,请前往回收站将该集群恢复或者直接删除。

# 共享文件存储 CFS 资源售罄

错误信息:”参数值错误:该地域无法提供服务“,代表 共享文件存储 CFS 该地域可用区售罄。我们将及时补货,请耐心等待。

# 部署异常后,但是资源已经创建

Discuz!Q 涉及资源较多,过程中可能产生异常。顺序为先创建 CFS、CynosDB for MySQL 资源,再开通云托管。 CFS 是按照存储量计费,没有存储数据则不产生费用。 CynosDB for MySQL 与服务器类似,是按照使用时间计费,即使没有调用也会计费。请开发者注意该项资源的计费方式。

# 常见问题

# 小程序部署

小程序的部署需要单独提审,安装完本扩展应用后,需要参考 构建/发布 Discuz! Q 小程序与 H5 前端 进行构建发布小程序端的代码。

# 公众号白名单 IP 配置

公众号登录开通时,需要将服务的 IP 添加到公众号的 IP 白名单中,详情请参见 第三方登录设置 文档。

  1. 在扩展应用详情页 API 和资源模块中,单击云托管的服务详情。 查看云托管服务
  2. 单击服务配置,查看服务的出口 NAT IP。 NAT IP

# 版本升级

每次部署更新都会拉取最新的 Discuz! Q 版本镜像进行安装。

# 复用已有的 CynosDB 集群

本应用会选取当前环境所处地域,并且在同一个 vpc 下,集群名为 DiscuzCynosDB 的数据库实例。如果不存在,则会创建新的集群。

如果希望复用已有 CynosDB 集群,可参考如下步骤。CynosDB 新用户 10 元可购 1C1G 半年使用时长

  1. 查看 CynosDB 所在的私有网络,并且将集群名更改为 DiscuzCynosDB。
  2. 创建一个新的按量计费环境,并且开通云托管,选择自定义配置,勾选 CynosDB 所在的私有网络,默认请勾选所有子网
  3. 回到扩展应用页面安装 Discuz!Q

# 配置到其他已有 MySQL 数据库

注:该操作会发起重新安装,数据库里 dabatase 为 discuzq 的库将会删除重建,请安装后,再将之前的数据导入。

  1. 安装 Discuz!Q 后,跳到云托管的 webshell
  2. 删除 lock 锁定文件 rm /var/lib/discuz/.clusterlock /var/lib/discuz/storage/install.lock,以发起重装。
  3. 点击编辑配置并重新部署,更改对应的环境变量。注意需要在同一个 vpc 下,否则需要提供外网的 IP。 更新环境变量
  4. 如果需要导入原先的数据,请将 /var/lib/discuz/config/config.php 中的密钥字段。'key' => 'base64:q94WREK6/c8WTTb+DeOQjmzyzQgOA5CmVpNfLQWK8kU=',该密钥用于注册账号的密码数据加密。可使用 nano 编辑器进行编辑。

# 迁移已有的 Discuz! Q 服务

注:原先如果是连接本地的 MySQL,建议将数据导出,再登录 CynosDB for MySQL 的数据管理后台 进行数据导入。在原先服务器内,更新 config/config.php 配置文件中的数据库连接信息,确认迁移无误后,再进行以下操作。

  1. 登录到已有的服务器后,进入 Discuz! Q 应用部署的根目录,例如 cd /www/wwwroot/discuz
  2. 打包 Discuz! Q 持久化的目录, tar -cf public/discuz.tar.gz config storage。如果提示没有权限,请切换为 root 角色。输入 su 后,填写密码后,便切换到 root 角色,再执行该命令
  3. 登录云托管容器的 webshell,进入到 CFS 挂载的持久化目录 cd /var/lib/discuz
  4. 将压缩包下载到容器内curl http://119.29.146.208/discuz.tar.gz(需要将 IP 替换为实际的服务器 IP 地址)
  5. 解压 tar -xvf discuz.tar.gz,完成持久化数据的迁移。请确定数据库配置是可以连接的。

# 其他

# 程序配置信息

您可以通过以下配置参数:

  • 环境 ID:选择需要部署的环境,在哪个环境下使用。
  • 管理员用户名:Discuz! Q 后台管理系统的管理员用户名,默认为 admin。
  • 管理员密码:Discuz! Q 后台管理系统的管理员密码,第一次安装时,会设置并加密存储在数据库内,之后变更请前往管理系统的用户管理面板重置密码,详情请参见 用户管理
  • 数据库用户名:默认为 root,当前不可修改。
  • 数据库密码:root 账号的密码,初次安装时设置后将作为初始化的密码创建 CynosDB。后续修改密码请前往 CynosDB 控制台的账号管理页面,修改密码后,请同步修改此处的密码,以保证数据库的正常使用。

# 计费

此能力使用云开发与其他腾讯云服务,可能会产生相关费用。云开发与云上其他资源分开计费,您可以在 费用中心 查看具体信息。

  1. 云托管(产品定价使用明细)。 云托管与静态网站托管用量查询
  2. 静态网站托管(产品定价使用明细)。
  3. 文件存储(Cloud File Storage,CFS)(产品定价使用明细)。 CFS用量
  4. 云数据库 CynosDB for MySQL(产品定价使用明细)。 数据库存储用量