首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Uniapp知识付费源码及网站小程序开源搭建 | TP6 + Vue完整Docker部署

Uniapp知识付费源码及网站小程序开源搭建 | TP6 + Vue完整Docker部署

原创
作者头像
用户12678365
发布2026-08-08 16:35:02
发布2026-08-08 16:35:02
1760
举报

知识付费赛道这几年彻底火了。但很多内容创作者和教培机构都被卡在一个问题上:用第三方 SaaS 平台(小鹅通、海豚知道等),每年要交不菲的年费,还要被抽成 5%–30%;想自己搭,又不知道从哪下手。

好消息是,目前 GitHub/Gitee 上有不少基于 Uniapp 的知识付费开源源码,技术栈成熟、功能完整,完全可以私有化部署一套属于自己的网校系统。本文将以主流开源项目(匠言、万岳等)为参考原型,手把手带你完成从服务器环境到多端发布的完整搭建流程。

源码:zs.xcxyms.top

💡 读完本文你将掌握:Uniapp 知识付费系统的典型技术架构、CentOS 服务器环境配置、后端 PHP 项目上线、Uniapp 多端编译发布、微信小程序接入、音视频存储方案,以及商用授权的合规注意事项。


一、为什么选 Uniapp 做知识付费前端?

知识付费场景最大的痛点之一是多端覆盖:你的学员可能用微信小程序、可能用 H5 网页、可能用 App,甚至可能用抖音/支付宝小程序。如果每个端单独开发,成本直接翻 5 倍。

Uniapp 的核心价值就是"一套代码,多端编译"

  • 编译目标覆盖 iOS、Android、H5、微信/支付宝/抖音/百度/QQ 等小程序
  • 基于 Vue.js 语法,前端开发者零学习成本切换
  • DCloud 生态成熟,插件市场丰富,资料文档齐全
  • 配合 uView UI / ColorUI 等组件库,能快速搭建课程卡片、播放器、会员中心等页面

主流的开源知识付费系统均采用 Uniapp 作为前端方案:

开源项目

前端

后端

核心特性

匠言知识付费开源版

Uniapp

TP5 + MySQL + Redis + Workerman

课程/直播/考试/会员/分销/多端

万岳在线教育开源版

Uniapp + socket.io + WebRtc

PhalApi + TP5.1 (ThinkCMF)

内置直播、聊天室、多端适配

追格小程序

Uniapp

WordPress

轻量级,适合博客/圈子延展

创创猫 (Java 版)

Uniapp

Spring Boot

Java 技术栈选型

📌 本文以 "TP5/TP6 + MySQL + Uniapp"​ 这一最主流的 PHP 技术栈为例展开,因为它占开源知识付费源码的 90% 以上,且二开资料最丰富。


二、典型系统架构与功能全景

一套完整的知识付费系统,通常包括三层架构

代码语言:javascript
复制
┌─────────────────────────────────────────┐
│  表现层:Uniapp 编译出的 小程序/H5/APP   │
├─────────────────────────────────────────┤
│  接口层:PHP (TP) 提供的 RESTful API      │
│  - 课程/订单/支付/会员/分销 等业务接口     │
├─────────────────────────────────────────┤
│  数据层:MySQL + Redis + OSS/COS 对象存储 │
└─────────────────────────────────────────┘

核心功能模块(以匠言开源版为例):

  • 课程管理:视频课、音频课、图文课、专栏、电子书
  • 直播管理:支持语音+视频、语音+PPT 等多种直播形态
  • 会员与订单:会员等级、VIP 订阅、单独购买、余额支付
  • 支付系统:微信支付、支付宝支付(H5/小程序/APP 多端)
  • 营销工具:分销裂变、优惠券、兑换码、拼团、积分
  • 互动社区:圈子、评论、@提醒、消息推送
  • 讲师与机构:多角色后台(平台/机构/讲师/学员)
  • 数据统计:学习进度、销售统计、会员升级分析

三、服务器与环境准备

1. 硬件与系统选型

项目

最低配置

生产推荐

CPU

2 核

4 核及以上

内存

4 GB

8 GB+

系统

CentOS 7.9 / Ubuntu 20.04

CentOS 7.9 / Rocky Linux 8

带宽

5 Mbps

10 Mbps+(音视频场景建议分离存储)

硬盘

40 GB SSD

100 GB+ SSD

数据来源:匠言官方推荐配置要求 2G 内存 40G 硬盘 5M 带宽起步,阿里云/腾讯云实战文章推荐 4 核 8G 起步。

2. 安装宝塔面板(强烈推荐)

手动编译 LNMP 环境太痛苦,宝塔能节省 80% 的时间:

代码语言:javascript
复制
# CentOS
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装完成后登录宝塔面板,一键安装:

  • Nginx 1.18+(匠言等系统明确要求 Nginx,伪静态规则基于 Nginx 配置)
  • MySQL 5.7+(字符集 utf8mb4)
  • PHP 7.4(匠言开源版基于 TP5 推荐 7.2–7.4;若用 TP6 版则建议 PHP 8.1)
  • Redis 7.0+

3. 安装必要的 PHP 扩展

在宝塔 PHP 管理页面安装以下扩展:

代码语言:javascript
复制
fileinfo  redis  opcache  bcmath  openssl  pcntl  posix  sockets

⚠️ 缺失 fileinfo 会导致音视频/图片上传失败;缺失 redis 会导致缓存和会话功能异常。这是新手最常见的两个坑。

4. 放行端口与配置防火墙

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=8282/tcp --permanent  # Workerman(如有)
firewall-cmd --reload

同时别忘了在云服务商的安全组中放行上述端口。


四、后端项目部署(以匠言 TP5 版为例)

1. 上传源码并配置站点

代码语言:javascript
复制
cd /www/wwwroot
git clone https://gitee.com/asliangzai/zsffzxkc.git kefu_pay
# 前端 Uniapp 代码另存
git clone https://gitee.com/teacher_of_speech/knowledge-payment-front-end.git frontend

在宝塔中添加站点:

  • 根目录/www/wwwroot/kefu_pay/public(站点入口必须为 public 目录)
  • PHP 版本:7.4
  • 伪静态:选择 "thinkphp" 规则

2. 配置数据库

创建 MySQL 数据库(utf8mb4 字符集),然后导入官方提供的 SQL 文件:

代码语言:javascript
复制
mysql -u root -p your_db < /path/to/install.sql

📌 匠言开源版的数据库文件需 Star 项目后关注公众号领取,这是开源项目的常见做法。

3. 修改数据库配置

编辑 /config/database.php

代码语言:javascript
复制
return [
    'hostname' => '127.0.0.1',
    'database' => 'your_db',
    'username' => 'your_user',
    'password' => 'your_password',
    'charset'  => 'utf8mb4',
];

4. 配置 Redis 与缓存

编辑 /config/cache.php,将默认 File 缓存改为 Redis:

代码语言:javascript
复制
'default' => 'redis',
'stores'  => [
    'redis' => [
        'type'   => 'redis',
        'host'   => '127.0.0.1',
        'port'   => 6379,
        'password' => '',
    ],
];

5. 运行安装向导

在浏览器访问 http://你的域名/install.php,按引导完成安装:

  • 第一步:环境检测(确保所有项 ✅)
  • 第二步:数据库配置
  • 第三步:管理员账号设置
  • 第四步:安装完成

6. 配置对象存储(音视频必备)

知识付费的核心是音视频,本地存储撑不住。匠言支持七牛云 OSS,其他系统多用阿里云 OSS 或腾讯云 COS。

以阿里云 VOD 为例

  1. 开通 VOD 服务,获取 AccessKey
  2. 修改 /config/oauth.php 或相关配置文件
  3. 配置视频转码模板、域名加速 CDN
  4. 开启防盗链(Referer 白名单),防止课程被非法盗播

7. 配置 Workerman 长连接(实时消息/直播用)

如果系统带直播或 IM 功能,需要启动 Workerman:

代码语言:javascript
复制
cd /www/wwwroot/kefu_pay/gateway
php start.php start -d

配置 systemd 守护:

代码语言:javascript
复制
[Unit]
Description=Kefu Workerman
After=network.target

[Service]
Type=simple
User=www
Group=www
WorkingDirectory=/www/wwwroot/kefu_pay/gateway
ExecStart=/usr/bin/php start.php start -d
Restart=always

[Install]
WantedBy=multi-user.target

五、Uniapp 前端编译与多端发布

1. 环境准备

  • 下载安装 HBuilderX
  • 安装 Node.js 14+、npm 6+
  • 安装微信开发者工具(小程序调试用)

2. 导入项目并配置

用 HBuilderX 打开前端源码目录,主要修改两个文件:

manifest.json

代码语言:javascript
复制
{
  "name": "我的知识店铺",
  "appid": "wx你的小程序AppID",
  "mp-weixin": {
    "appid": "wx你的小程序AppID",
    "setting": {
      "urlCheck": false
    }
  }
}

config.js(或 .env):

代码语言:javascript
复制
export default {
  BASE_URL: 'https://api.yourdomain.com',  // 后端 API 域名
  WS_URL: 'wss://api.yourdomain.com/ws',   // WebSocket 地址
  OSS_BUCKET: 'your-bucket',
  // ... 其他配置
}

3. 编译到多端

HBuilderX 顶部菜单 → 发行:

目标平台

操作路径

产物

H5

发行 → 网站 PC/H5

静态文件,部署到 Nginx

微信小程序

发行 → 小程序 → 微信小程序

上传代码包到微信后台

App (Android/iOS)

发行 → 原生 App

生成 APK/IPA 安装包

支付宝/抖音小程序

发行 → 小程序 → 对应平台

各平台代码包

💡 一次代码,五端同发。这就是 Uniapp 最大的生产力优势。

4. 微信小程序发布要点

  1. 登录微信公众平台,注册并认证小程序(个人主体无法开通微信支付,必须用企业主体
  2. 在「开发管理 → 开发设置」中配置服务器域名
    • request 合法域名:https://api.yourdomain.com
    • uploadFile 合法域名:你的 OSS/CDN 域名
    • downloadFile 合法域名:同上
  3. 在「微信支付 → 商户号」绑定微信支付商户号
  4. HBuilderX 发行小程序代码包 → 导入微信开发者工具 → 上传 → 提交审核

⚠️ 小程序视频无法播放的常见原因:视频域名未配置到合法域名列表,或 OSS/COS 未开启 Referer 防盗链白名单。


六、Nginx 反向代理与 HTTPS 配置

1. 配置 HTTPS(微信小程序强制要求)

代码语言:javascript
复制
server {
    listen 443 ssl;
    server_name api.yourdomain.com;

    ssl_certificate     /ssl/yourdomain.pem;
    ssl_certificate_key /ssl/yourdomain.key;

    root /www/wwwroot/kefu_pay/public;
    index index.php index.html;

    # 伪静态(ThinkPHP)
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=/$1 last;
        }
    }

    # PHP 处理
    location ~ \.php$ {
        fastcgi_pass   unix:/tmp/php-cgi-74.sock;
        fastcgi_index  index.php;
        include        fastcgi.conf;
    }

    # 静态资源缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|mp4)$ {
        expires 7d;
    }
}

2. H5 端独立站点配置

H5 编译后的静态文件单独部署:

代码语言:javascript
复制
server {
    listen 443 ssl;
    server_name h5.yourdomain.com;
    root /www/wwwroot/frontend_h5;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    # API 反向代理(解决跨域)
    location /api/ {
        proxy_pass https://api.yourdomain.com/;
    }
}

七、支付与业务配置

1. 微信支付配置

进入后台「系统配置 → 支付设置」:

  • 填写微信支付商户号(MCHID)
  • 填写 APIv3 密钥
  • 上传商户证书(apiclient_cert.pem / apiclient_key.pem)
  • 配置支付回调地址:https://api.yourdomain.com/payment/notify/wechat

2. 支付宝支付配置

同理填写支付宝 APPID、应用私钥、支付宝公钥。

3. 分销与会员体系

知识付费的核心变现引擎是分销裂变

  • 一级/二级佣金比例设置
  • 自动生成带参推广海报
  • 分销员后台与提现审核
  • 使用数据库事务确保"退款时佣金回滚",避免乱账

4. 兑换码与限免活动

运营冷启动时常用策略:

  • 批量生成体验码(如"7天VIP")投放外部渠道
  • 设置 3–5 节基础课限免,降低注册门槛
  • 配合分销员高佣金(如前 50 名 40% 佣金)做种子裂变

八、常见问题与排坑指南

❌ 问题 1:页面 404 或路由失效

原因:Nginx 伪静态未配置或站点入口目录不对

解决:确认站点根目录为 /public,并配置 ThinkPHP 伪静态规则

❌ 问题 2:音视频上传失败

原因:缺少 fileinfo 扩展,或 PHP 上传大小限制

解决

代码语言:javascript
复制
# 宝塔 PHP 设置中修改
upload_max_filesize = 100M
post_max_size = 100M

并安装 fileinfo 扩展

❌ 问题 3:小程序无法连接到后端

原因:域名未备案或未配置 HTTPS

解决:微信小程序要求必须 HTTPS + 已备案域名,且需在公众平台配置 request 合法域名

❌ 问题 4:课程视频无法播放

原因:OSS/COS 域名未加入小程序合法域名,或未开启 CDN 加速

解决:在微信公众平台「开发设置」中加入音视频 CDN 域名;在 OSS 控制台配置 Referer 防盗链白名单

❌ 问题 5:高并发下订单超卖

原因:库存检查非原子操作

解决:使用 Redis 原子操作 DECR,或在 MySQL 中用 UPDATE ... WHERE stock > 0

❌ 问题 6:Workerman 服务启动后自动退出

原因:缺少 pcntlposix 扩展,或 event 扩展未装

解决:安装对应扩展后重启


九、性能优化建议

  1. Redis 缓存热点数据:课程列表、排行榜、会员信息
  2. OSS/COS + CDN:音视频必须走对象存储 + CDN,不要让应用服务器直接 serve 大文件
  3. MySQL 主从分离:日活过万后,读写分离是必经之路
  4. Workerman 独立部署:长连接服务与 HTTP 服务分离,互不影响
  5. 开启 OPcache:PHP 性能提升 2–3 倍
  6. 图片懒加载 + 视频 HLS 切片:前端用 Uniapp 的 lazy-load 属性,视频用 HLS 协议自适应码率

十、合规与商用授权提醒(非常重要)

这是很多技术文章不会告诉你的部分,但你必须重视

⚠️ 开源 ≠ 可商用。以匠言知识付费开源版为例,其许可证为 CC0,允许学习交流,但商用需购买商业授权。万岳开源版也明确说明"开源版不适合商用,商用请购买商业版"。

商用前必做的三件事

  1. 仔细阅读 LICENSE:是 GPL、MIT、CC0 还是商业授权?不同许可证对商用的要求天差地别
  2. 购买商业授权:大多数"开源版"仅用于学习,真要上线商用必须向作者购买授权
  3. 不要使用"破解版""绿色版"源码:这类源码可能植入后门,且法律风险极高

合规清单

  • ✅ 域名已 ICP 备案
  • ✅ 微信小程序已完成企业认证
  • ✅ 微信支付商户号资质齐全(《增值电信业务经营许可证》等)
  • ✅ 课程内容版权清晰,不涉及侵权
  • ✅ 用户隐私协议、付费协议完备

十一、后续二次开发方向

拿到这套系统后,你可以基于 Uniapp + PHP 的架构做很多扩展:

  • 接 AI 大模型:在课程问答、智能客服、AI 口语陪练等场景接入 DeepSeek / GPT
  • 接 CRM / 企微:把学员线索同步到企业微信,做私域运营
  • 多租户 SaaS 化:通过 tenant_id 隔离数据,做成平台模式对外招商
  • 直播带货:结合 WebRTC 低延迟直播,做课程+带货双轮驱动
  • 跨端数据打通:利用微信开放平台的 unionid 机制,让公众号、小程序、APP 的用户体系归一

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、为什么选 Uniapp 做知识付费前端?
  • 二、典型系统架构与功能全景
  • 三、服务器与环境准备
    • 1. 硬件与系统选型
    • 2. 安装宝塔面板(强烈推荐)
    • 3. 安装必要的 PHP 扩展
    • 4. 放行端口与配置防火墙
  • 四、后端项目部署(以匠言 TP5 版为例)
    • 1. 上传源码并配置站点
    • 2. 配置数据库
    • 3. 修改数据库配置
    • 4. 配置 Redis 与缓存
    • 5. 运行安装向导
    • 6. 配置对象存储(音视频必备)
    • 7. 配置 Workerman 长连接(实时消息/直播用)
  • 五、Uniapp 前端编译与多端发布
    • 1. 环境准备
    • 2. 导入项目并配置
    • 3. 编译到多端
    • 4. 微信小程序发布要点
  • 六、Nginx 反向代理与 HTTPS 配置
    • 1. 配置 HTTPS(微信小程序强制要求)
    • 2. H5 端独立站点配置
  • 七、支付与业务配置
    • 1. 微信支付配置
    • 2. 支付宝支付配置
    • 3. 分销与会员体系
    • 4. 兑换码与限免活动
  • 八、常见问题与排坑指南
    • ❌ 问题 1:页面 404 或路由失效
    • ❌ 问题 2:音视频上传失败
    • ❌ 问题 3:小程序无法连接到后端
    • ❌ 问题 4:课程视频无法播放
    • ❌ 问题 5:高并发下订单超卖
    • ❌ 问题 6:Workerman 服务启动后自动退出
  • 九、性能优化建议
  • 十、合规与商用授权提醒(非常重要)
  • 十一、后续二次开发方向
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档