企微 SCRM · 宝塔安装图文教程

从拿到源码包,到系统能用为止 —— 照着做,5 步、大约 15 分钟。

适用版本 1.30.1 宝塔面板(Linux 服务器) 不需要懂命令 公开教程 · 可自由转发

开始之前:你需要准备的

另外要向服务商(提供该系统的一方)索取两样东西,第 4、5 步要用:
① 企微协议服务地址 —— 形如 http://1.2.3.4:8083,是替你跑企微操作的那台服务;
② 配对码 —— 形如 ABCD-EFGH-JK23,30 分钟内有效、用一次就作废,要在现场现要。

目录

  1. 确认环境(Node.js / MySQL)
  2. 上传源码包并解压
  3. 在宝塔建 Node 项目(最关键)
  4. 建一个空数据库
  5. 打开域名,走安装向导
  6. 接入服务商 + 重启
  7. 装完之后必做的三件事
  8. 配 HTTPS(建议)
  9. 常见问题速查

◎整体流程

先看一眼全局,心里有底。下面每一步都有图。

1 上传解压 传到 /www/wwwroot/ 解压出 wecom-scrm/ 2 建 Node 项目 启动文件 boot.cjs 端口 5181 · 绑域名 3 建一个空库 只要空库 不用导入任何 SQL 4 打开域名 自动进安装向导 四步填完 5 接服务商 重启 → 登录使用 第 3 步的位置随意(向导装的时候库存在就行),其余按顺序做
示意图整条链路 · 五步走完就能登录

0确认环境(1 分钟)

这套系统要 Node.js 和 MySQL,两样都在宝塔「软件商店」里装。

  1. 宝塔面板 → 左侧 软件商店 → 上方点 已安装。
  2. 看列表里有没有这两样:
    • Node.js 版本管理器 —— 要有,且里面装了 18 或更高的版本(建议 20 / 22 LTS)。
    • MySQL —— 要有,版本 5.7 或更高。
  3. 缺 Node.js:在软件商店搜索「Node.js版本管理器」安装 → 装好后再点它的「设置」→ 装一个 18+ 的版本。
    缺 MySQL:在软件商店搜「MySQL」安装(装完记得启动)。
不用装的东西 前端界面已经构建好放在包里了 —— 服务器上不需要装 node_modules 那堆东西,也不用跑 npm install。 后端只用 Node 自带的模块,解压就能跑。
可选:想支持客户语音 客户发来的语音是 silk 格式,要转成能播的 wav 才听得到。两件事,不做也不影响其它功能:
① 宝塔 → 终端 → apt install -y ffmpeg(CentOS 用 dnf install -y ffmpeg);
② 终端 → cd /www/wwwroot/wecom-scrm && npm install --omit=dev(约 4 MB,几秒钟)。
不装的表现只有一个:语音消息点开播不了。

1上传源码包并解压

把压缩包放到网站的根目录里。

  1. 宝塔 → 左侧 文件 → 地址栏进到 /www/wwwroot。
  2. 点上方 上传 → 选你拿到的那 .tar.gz 压缩包 → 传上去。
  3. 传完后,在文件列表里右键那个压缩包 → 解压 → 确定。
  4. 解压完会多出一个 wecom-scrm 文件夹。最终路径是:
    /www/wwwroot/wecom-scrm
/www/wwwroot 宝塔面板 · 文件 上传 新建 解压 ① 先「上传」把包传上来 名称 大小 修改时间 📦 wecom-scrm-install-1.30.1-20260921.tar.gz 2.90 MB 刚刚 ② 右键它 → 解压 📁 wecom-scrm 目录 刚刚 ③ 解压后应有这个目录 📄 安装说明.txt 12 KB 刚刚
界面示意图宝塔「文件」里的样子 · 不同面板版本按钮位置略有差别,按文字找即可
三个容易出错的地方 ① 一定要解压到 /www/wwwroot/ 下 —— 别放到 /root 或别的地方;
② 解压出来必须是 wecom-scrm 这一层,不要再套一层同名目录 (出现 /www/wwwroot/wecom-scrm/wecom-scrm/… 就是多套了一层,把里面那层移上来);
③ 解压后如果看到一个名为 ._wecom-scrm 的文件(前面带 ._),那是 macOS 的垃圾文件, 删掉即可,不影响任何东西。

2在宝塔建 Node 项目← 最关键的一步

这一步做完,域名、反向代理、启停按钮、日志就全都齐了,一行 nginx 配置都不用写。

宝塔面板 网站 数据库 FTP 监控 安全 文件 ① 先点左侧菜单的「网站」 站点 Node项目 ② 切到「Node项目」标签 Node 项目列表 添加 Node 项目 ③ 点这个按钮 (现在列表是空的 —— 项目建好之后它会出现在这里,带「启动 / 重启 / 日志」按钮) 项目名称 · 状态 · 端口 · 项目目录 · 操作
界面示意图入口在哪:网站 → Node项目 → 添加 Node 项目

然后会弹出一个表单。照下表填,一个字都别改的地方我已经标出来了:

添加 Node 项目 项目名称 wecomscrm 只能用字母、数字、下划线;不要填域名 项目目录 /www/wwwroot/wecom-scrm 就是第 1 步解压出来的目录 启动选项 自定义启动命令 别用默认读到的那一项(多半是 dev) 启动文件 server/boot.cjs 必须这个,不是 index.cjs 项目端口 5181 保持这个端口,别改 运行用户 www 默认就是它,不要选 root 绑定域名 你的域名(不带 http://) 填在这里 —— 反代由宝塔自动生成 开机自启 勾上 服务器重启后系统自动起来 填完点「提交」—— 面板会自己装上进程守护(PM2)并启动项目。
界面示意图「添加 Node 项目」表单逐项对照
项目名称wecomscrm
项目目录/www/wwwroot/wecom-scrm
启动选项 / 启动文件server/boot.cjs
项目端口5181
运行用户www
绑定域名你的域名(例如 scrm.你的域名.com)
开机自启勾上
「启动选项」那一栏怎么填才对 宝塔会先读 package.json 里的脚本列表(我们包里也带了这个文件),所以下拉里可能默认选到 dev、build 之类 —— 那都是开发用的,会跑不起来。
正确做法二选一:
· 把「启动选项」改成 自定义启动命令,再把「启动文件」填成 server/boot.cjs;
· 如果下拉里本来就有 start(它就等于 node server/boot.cjs),直接选它也行。
判断标准只有一条:最终启动的是 server/boot.cjs。
千万别用「网站 → 添加站点」来建 有些教程会让你「添加站点」再手写反向代理。这套系统不能那样装,会踩三个坑:
① 那样建的站点在「Node项目」列表里永远看不到,没有启动 / 重启按钮,日志也看不了;
② 域名要自己手写 nginx 反代,写错了就是 403 或白屏;
③ 以后为别的用途再「添加站点」同名域名,会把那份手写配置覆盖掉,页面立刻打不开。
用「Node项目」建,以上问题一个都不会有。
为什么启动文件是 boot.cjs boot.cjs 会先判断这台服务器「装过没有」:没装过就打开安装向导,装过了才加载正式服务。 如果直接填 index.cjs,第一次启动会因为还没配数据库而直接退出,项目状态显示「未启动」。
如果提交时报端口占用 说明 5181 被别的程序占了。在宝塔「终端」执行 ss -lntp | grep 5181 看是谁在用; 实在要让就在表单里换一个端口(比如 5182),但换完要记住——第 3 步用 IP 访问时要用它。

3建一个空数据库

只要一个空库。不需要导入任何 SQL —— 建表由安装向导自己做(会建出 50 多张表)。

宝塔面板 网站 数据库 FTP 监控 安全 文件 ① 先点左侧菜单的「数据库」 数据库列表 添加数据库 ② 点它 数据库名 用户名 密码 操作 wecom_scrm scrm •••••••• 管理 ③ 名字、用户名、密码自己定 —— 先记下来,第 4 步要一字不差地填进安装向导
界面示意图数据库 → 添加数据库 · 建完把三项抄下来
数据库名wecom_scrm(自己起也行)
用户名scrm(自己起也行)
密码自己设一个强密码,记下来
权限本地服务器(默认)
省事的另一条路 不想单独建库建账号,也可以在第 4 步向导里直接填 MySQL 的 root 账号和 root 密码, 并勾上「数据库不存在时自动创建」,让向导替你建。两种方式选一种就行。
只有一种情况才需要 .sql 文件 把另一台机器上的老数据搬过来 —— 那属于「数据迁移」,走宝塔数据库的「管理 → 导入」, 跟这次首次安装是两回事。

4打开域名,走安装向导

在浏览器里打开你的域名,比如 http://scrm.你的域名.com —— 它会自动跳到安装向导。

打不开怎么办 先确认域名解析已经生效(ping 一下看是不是这台服务器的 IP)、宝塔「安全」和云服务器的安全组都放行了 80 端口。
实在不行还有一条备用路:http://服务器IP:5181/install(用这条路要先放行 5181 端口)。

① 环境检测

安装向导第 1 步:环境检测
实拍第 1 步 · 环境检测。绿色对勾表示通过;遇到橙色的 ⚠(比如 ffmpeg)不影响继续,以后补装即可;红色的 ✗ 必须先解决才能往下走
图上路径为什么和你的不一样 本页截图取自演示环境,所以显示的是临时路径。在你那边,这两项显示的是 /www/wwwroot/wecom-scrm —— 只要都是绿色对勾就没问题。

② 数据库

安装向导第 2 步:数据库
实拍第 2 步 · 把你第 3 步建的库名 / 用户名 / 密码填进去,点「测试连接」,出现绿条「连接成功」再点下一步(图中填的是示例值)

③ 站点、协议与管理员

这一步有四样东西,其中「企微协议服务地址」是必填,要向服务商索取:

安装向导第 3 步:协议服务地址是空的此处已遮挡
实拍第 3 步 · 首次安装时「企微协议服务地址」是空的 —— 这一格不填,点「开始安装」会被拦下来
安装向导第 3 步:留空被拦住此处已遮挡
实拍留空点安装的效果 · 红字说得很明白:这项不填就不许装
安装向导第 3 步:填写示范此处已遮挡
实拍填好的样子 · 协议地址形如 http://1.2.3.4:8083(图中是示例);管理员账号密码你自己定,密码至少 8 位
对外域名客户扫码看到的地址。留空也行,系统会自动猜;配好 HTTPS 后回来填上(见第 7 步)
企微协议服务地址必填 · 向服务商索取,形如 http://1.2.3.4:8083
管理员账号你自己定(默认给的是 admin)
管理员密码至少 8 位 · 公网部署务必设强密码
这一格为什么这么要紧 扫码登录企微号、发消息、改资料,全都由这台协议服务代跑。
如果填错(或者干脆留空),系统会默默去连一个写死的默认地址 —— 装是能装完, 但之后所有企微操作都会打到别人那儿,而且不会报任何错。
⇒ 一定用服务商给你的那个地址。地址只能填 IP 或域名(ASCII),不要填中文。

④ 接入服务商

安装向导第 4 步:接入服务商
实拍第 4 步 · 填「公司名称 + 服务商地址 + 配对码」,点「接入」。服务商地址不写 http:// 也会自动补
公司(门店)名称你自己起,服务商那边靠这个名字认出你这一家
服务商地址服务商给你的控制台地址,形如 https://admin.xxx.top
配对码向服务商现要一串 · 形如 ABCD-EFGH-JK23 · 30 分钟内有效、用过一次就作废
服务商也可能直接给你一条带参数的链接 那样「服务商地址」这一格会自动填好,你只需要填公司名和配对码:
http://你的域名/install?c=https://admin.服务商的域名
这一步可以「先跳过,以后再接」 跳过不影响安装。但系统会一直停在「未授权」状态,除了接入页以外哪里都进不去, 所以别忘了一定要回来接。

5等服务商签发授权 → 重启 → 登录

安装向导完成页
实拍装完的完成页 · 这里会把填过的信息回显一遍(图上是演示环境的数据)
  1. 把「代号」截图发给服务商,让他在控制台点一下「签发授权」。
  2. 重启 Node 项目:宝塔 → 网站 → Node项目 → 找到本项目 → 点 重启。
  3. 重新打开你的域名,用第 4 步设的管理员账号登录,就能进系统了。
授权怎么确认 / 怎么补 如果当时跳过了接入、或者服务商签好了你这边还没刷新,两种办法都行:
· 打开 http://你的域名/attach —— 免登录的独立页面,能看到当前状态,也能重新接入。
· 或者把服务商发你的授权码粘到 http://你的域名/#/license(同样不需要登录)。
服务商签好之后,系统会自己取,最长一分钟生效,不用重启。
怎么看重启到底成没成 别只看面板上那个「运行中」的绿灯 —— 端口在监听不等于服务能干活。让它自己报个数:
# 宝塔 → 终端
curl -o /dev/null -w '%{http_code} %{time_total}s\n' http://127.0.0.1:5181/login
要看到 200 且耗时是毫秒级才算正常。
找不到「重启」按钮,说明这个站点当初是当普通站点建的(见第 2 步那条警告), 临时办法是在终端跑 bash scripts/restart.sh。

6装完之后必做的三件事

不做这三件,系统就是一个空的壳子。

1) 用安装时设的管理员账号登录

访问你的域名,用第 4 步设的账号密码登录。

2) 接入企微号

左侧「+ 添加账号」→ 让本人扫码登录接入。

新号是「待审核」状态 新接入的企微号不会立刻生效 —— 要到「企微账号管理 → 待审核」里点一下放行, 否则它在任何列表里都是灰的、发不出消息。

3) 配消息回调(不配的话,客户发来的消息一条都进不来)

进「客服中心 → 聊天监控」→ 点「消息回调」,填这个地址:

http://你的域名/wecom-protocol/callback
认证令牌不用自己拼 保存时后端会自动带上鉴权令牌(安装向导已经在配置文件里开了回调令牌校验, 公网部署必须开,否则任何人都能伪造一条「客户消息」塞进来)。
你只管填地址。地址必须是协议服务器能访问到的公网地址。
保存后应提示「已注册 N/M 个在线实例」,N 等于当时在线号的数量。

+配 HTTPS(建议,尤其要对外给客户扫码)

  1. 宝塔 → 网站 → Node项目 → 本项目 → SSL → Let's Encrypt → 申请。
  2. 申请前确认:域名已解析到这台服务器,80 / 443 端口在宝塔「安全」和云服务器安全组两处都放行了。
  3. 配好后回到系统里「活码管理 → 对外域名」,填上 https://你的域名 —— 否则客户扫码拿到的还是 http 链接。
千万别为了上 SSL 再「添加站点」 宝塔会用新站点的配置覆盖同名域名的配置,项目原本的反向代理就丢了, 页面立刻 403 或白屏,而且「Node项目」列表里看不出任何异常。
SSL 就配在 Node 项目自己身上。

?常见问题速查

现象怎么办
域名打不开 ① 看 Node 项目是不是「运行中」;② 宝塔「安全」和云服务器安全组两处都放行 80(用 IP:5181 则放行 5181);③ 本机量一下 curl -I http://127.0.0.1:5181/login 是不是 200。
登录时提示「本系统尚未授权,请联系服务商开通后再使用」 这是正常流程不是装坏了。打开 http://你的域名/attach 看状态:显示「已报备,等服务商授权」就把代号发给服务商;显示「还没接入」就在这页填服务商地址 + 配对码(配对码要重新要一个,老的可能过期了)。
接入时提示「签名不对」/「配对码不认识」 九成是抄错了。配对码里没有数字 0 和 1、也没有字母 O 和 I(字母表刻意去掉了,免得认错)。从聊天里复制最稳;横杠全角半角都行,大小写不敏感。
接入时提示「等了 N 秒还没有回应」 这台服务器连不上服务商地址。查域名拼写、服务器有没有外网、服务商控制台是不是开着。这一页随时能重试,失败不影响安装。
一直停在「已经安装过了」的说明页 说明还没重启。回宝塔把 Node 项目重启一次。
想重新安装 / 换数据库 删掉项目里的 .env 和 data/.installed,再访问 /install。
注意:删 .env 不会动数据库里的数据。
客户语音播不了 没装 ffmpeg 或没跑 npm install --omit=dev,按第 0 步末尾补上(其它功能不受影响)。
装完点域名一直转圈 多半是建表 / 写库那一步没过去。别猜,三步查:
a) 库里有没有表:宝塔数据库「管理」里看,或 show tables;;
b) 重启一次看日志(bash scripts/restart.sh),真因在日志里;
c) 缺依赖只会让语音播不了,不会导致启动失败,别找错方向。
想更安全:只让 nginx 反代访问 编辑项目里的 .env,把 HOST=0.0.0.0 改成 HOST=127.0.0.1,重启。这样 5181 只在服务器内部监听。
数据存在哪 / 怎么备份 数据在 MySQL(安装时填的那个库),文件素材在 wecom-scrm/data/uploads/。备份请两样一起备。

★附录:和服务商对接要用的信息

要向他索取① 企微协议服务地址(第 4 步第 ③ 小节用)
② 配对码(第 4 步第 ④ 小节用,现要现用)
③ 服务商控制台地址
要发给他装到第 ④ 步时,屏幕上会显示一个「代号」—— 截图发给他,他据此签发授权
上报了什么只有公司名、站点地址、主机名、机器指纹、版本号。
数据库密码、员工与客户资料一概不上报。
授权码等同于这套系统的使用权,别贴给别人、别填到别的地方

企微 SCRM · 宝塔安装图文教程 · 版本 1.30.1
图注说明:实拍 为真实运行截图 · 界面示意图 为按操作位置绘制的示意(不同宝塔版本按钮位置可能略有差异,按文字找即可)
公开版 · 可自由转发 · 生成于 2026-09-21 20:46 · 部分截图做了一处打码(遮挡的是安装页上一条内部默认账号提示)