# 1.0 升级指南

1.0 版新增了很多的功能,但一些改动也涉及到项目骨架目录的调整,以及各配置项的结构调整,如果您的项目已经投入了业务使用,那么可以根据下面的内容点来调整您的项目。如果您是一个新的项目,按照文档重新安装即可。

# 功能更新概要

  • 【代码优化】基础开发框架 Hyperf 版本由 2.0 升级至 2.2
  • 【代码优化】目录结构优化,将 api-server 拆分成核心应用和插件,便于后期扩展
  • 【新增功能】引流获客 - 门店活码
  • 【新增功能】营销中心 - 任务宝
  • 【新增功能】营销中心 - 群裂变
  • 【新增功能】营销中心 - 抽奖活动
  • 【新增功能】营销中心 - 群打卡
  • 【新增功能】客户转化 - 个人SOP
  • 【新增功能】客户转化 - 自动打标签
  • 【新增功能】客户转化 - 互动雷达
  • 【新增功能】客户管理 - 离职继承
  • 【新增功能】客户管理 - 在职转接
  • 【新增功能】运营管理 - 客户统计
  • 【新增功能】运营管理 - 成员统计
  • 【新增功能】客户群运营 - 群SOP
  • 【新增功能】客户群运营 - 群日历
  • 【新增功能】客户群运营 - 标签建群
  • 【新增功能】客户群运营 - 客户群提醒
  • 【新增功能】客户群运营 - 群聊质检
  • 【新增功能】客户群运营 - 无限拉群
  • 【新增功能】客户群运营 - 客户群群发
  • 【新增功能】客户群运营 - 入群欢迎语
  • 【新增功能】系统设置 - 公众号授权
  • 【代码优化】将客户头像、员工头像优化为存储原地址,不再同步至本地
  • 【代码优化】优化文件上传方式,不再支持自定义文件名
  • 【代码优化】将全局认证 Auth 取消,改为 dashboard、sidebar独立中间件
  • 【Bug修复】大量已知bug修复

# 升级 PHP 到 7.4+

1.0 版本将最低的 PHP 版本要求从 7.2+提升到 7.4+,请重新安装PHP和相关扩展。

php -v

# 增加 PHP 扩展 pcntl

1.0 版本将 Hyperf 框架升级至了最新的 2.2 版本,该版本的注解扫描使用了 pcntl 扩展,所以请先确保您的 PHP 安装了此扩展。

php --ri pcntl

pcntl

pcntl support => enabled

# 备份原有配置文件和数据库

  • 备份以下配置文件:
    • api-server/.env
    • dashboard/.env
    • sidebar/.env
  • 如果使用本地存储文件,刚备份文件上传目录
    • api-server/storage/upload
  • 备份 MySQL 数据库

# 将原代码目录改名

mv /www/wwwroot/mochat /www/wwwroot/mochat_old

# 下载新的代码并重新安装依赖

# cd /www/wwwroot
# git clone https://github.com/mochat-cloud/mochat.git
# cd /www/wwwroot/mochat/api-server
# composer install

# 将备份的api-server/.env复制过来
# cp /www/wwwroot/mochat_old/api-server/.env .env

# 如果是本地存储文件,将上传文件复制过来
# cp -R /www/wwwroot/mochat_old/api-server/storage/upload ./storage/

# 修改配置文件

由于新的.env有变化,请按以下说明修改,下面为举例,请改为自己的域名

# 接口URL
API_BASE_URL=https://demoapi.mo.chat
# 商户后台面板URL
DASHBOARD_BASE_URL=https://demo.mo.chat
# 侧边栏URL
SIDEBAR_BASE_URL=https://sidebar.mo.chat
# 运营工具URL
OPERATION_BASE_URL=https://op.mo.chat

# 导入变更的 SQL 文件

# 未二次开发过可以直接执行
# 如果二次开发过,增加过菜单,改过 mc_rbac_menu 表的,请自行对照升级SQL改为自己的升级SQL,不要直接执行,注意其中的TRUNCATE TABLE `mc_rbac_menu`语句。
# SQL文件路径,请请自行使用各类工具导入
# api-server/storage/install/upgrade_20210809.sql

# 启动服务

cd /www/wwwroot/mochat/api-server
# 如果旧版服务未停止,可以使用下面的命令停止旧的api-server
ps aux | grep mochat |  awk '{print $2}' | xargs kill -9
# 加-d表示守护进程方式启动
php bin/hyperf.php server:start -d
# 如果报错 pcntl_fork() has been disabled for securyity reasons
# 则去宝塔后台软件商店-PHP-7.4管理-禁用函数或php.ini 中 disable_functions 中删除相关函数

# 依次配置各前端

  • 商户后台前端重新编译
# 复制备份的配置文件
# cd /www/wwwroot/mochat/dashboard
# cp /www/wwwroot/mochat_old/dashboard/.env .env
# yarn install
# yarn run dll
# yarn build
  • 商户后台增加nginx配置
location /authRedirect {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # http时使用下面的配置
        proxy_cookie_path / "/; HttpOnly; SameSite=strict";
        # https时使用下面的配置
        # proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";

        proxy_pass http://127.0.0.1:9501/dashboard/officialAccount/authRedirect/;
    }
  • 侧边栏前端重新编译
# 复制备份的配置文件
# cd /www/wwwroot/mochat/sidebar
# cp /www/wwwroot/mochat_old/sidebar/.env .env
# yarn install
# yarn build
# 直接使用商户后台的配置文件
# cd /www/wwwroot/mochat/operation
# cp /www/wwwroot/mochat_old/dashboard/.env .env
# yarn install
# yarn build
  • 运营工具增加nginx配置
location / {
      root /www/wwwroot/mochat/operation/dist;
      index  index.html index.htm;
      try_files $uri $uri/ /index.html;
    }
location ^~ /auth/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # http时使用下面的配置
        proxy_cookie_path / "/; HttpOnly; SameSite=strict";
        # https时使用下面的配置
        # proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";

        proxy_pass http://127.0.0.1:9501/operation/auth/;
   }

   location ^~ /openUserInfo/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # http时使用下面的配置
        proxy_cookie_path / "/; HttpOnly; SameSite=strict";
        # https时使用下面的配置
        # proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";

        proxy_pass http://127.0.0.1:9501/operation/openUserInfo/;
   }

# 重启nginx服务

systemctl restart nginx

# 配置开放平台&公众号

参考开放平台&公众号配置教程