客服配置

注意事项

  • shopro客服系统 采用 workerman 的 gateway-worker 作为服务基础,请先安装 gateway-worker 扩展包
  • shopro商城 兼容了插件市场的 workerman在线客服系统,因 shopro 无法控制别的插件,如果使用 shopro客服系统 ,请在插件管理禁用 workerman在线客服系统,如果使用 workerman在线客服系统,请在 商城配置,客服配置,选择 workerman 在线客服系统
  • 如果使用了 workerman 在线客服系统,请移步 workerman 在线客服 文档

安装部署

安装扩展包

composer require workerman/gateway-worker:~3.0

删除禁用函数

putenv
shell_exec
proc_open
pcntl_alarm
pcntl_fork
pcntl_wait
pcntl_signal
pcntl_signal_dispatch

linux 服务器

必要扩展

如果是宝塔,默认已经开启了这两个扩展

  • pcntl
  • posix

建议安装扩展(性能提升)

可以不装,如果想提升 workerman 性能的小伙伴,需要自行百度搜索 php 安装 event 扩展

  • event

参数配置

注意事项

  • 建议开启 ssl 连接
  • 如果wss 连接方式选择 证书,ssl 证书要填写证书在服务器的绝对地址
  • 如果一台服务器上同时部署多套商城,则 gateway 端口,gateway 内部端口,worker 服务端口,都需要变更,gateway 内部端口,和 worker 服务端口,建议在现有端口基础上 + 10,给之后调进程数量留足够的空间,比如 2020 变为 2030

配置

客服配置 - 图1

部署 wss

  • 注意反向代理和证书方式只需要配置一个即可
    nginx 反向代理(如果nginx 建议使用)

    目前只提供 nginx 的配置文档,按照这个配置可以不用放行客服端口[1819]

  • 反向代理配置一定要在伪静态上面
  • 反向代理配置一定要在伪静态上面
  • 反向代理配置一定要在伪静态上面

反向代理配置,注意修改里面的端口为自己后台配置的客服端口

location ^~ /websocket {
 proxy_redirect off;
 proxy_pass http://127.0.0.1:1819;     # 转发
 proxy_set_header Host $host;
 proxy_set_header X-Real_IP $remote_addr;
 proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;     # 升级协议头
 proxy_set_header Connection upgrade;
}

配置完整示例,注意截图有限,反向代理下面是伪静态和图片跨域,之前配置好了的,都不需要动,只需要在最前面追加反向代理配置

客服配置 - 图2

ssl 证书配置方式

  • 证书这里要直接使用 https 域名的证书,wss 证书,和 wss key 输入框这里直接填写证书的绝对地址
  • 如果是宝塔证书地址在这里:宝塔-》网站-》设置-》配置文件 里面可以看到
  • 注意如果是 linux 要确保客服进程启动用户有读取证书的权限,可以改证书和所在目录的权限,或者是将证书复制一份到项目目录,把证书设置成 www 用户所有 证书配置方法(推荐,以宝塔为例)

  • 第一步,配置域名 https 证书,并且找到证书地址

客服配置 - 图3

  • 第二步,去刚才的地址复制证书

客服配置 - 图4

  • 第三步,将证书放入项目目录,并且给上权限

客服配置 - 图5

  • 第四步,将放置的完整证书地址填入客服配置

客服配置 - 图6

启动服务

linux 服务器
注意事项

  • linux 下启动客服命令要使用当前 php-fpm 启动用户作为启动用户,如果是宝塔,则是 www 用户

请先在调试模式下启动

  • 调试模式下可以发现绝大部分问题,请一定现在调试模式下调通之后在守护方式启动,调试模式按 ctrl+c 停止,停止时候的报错可以忽略(因为ctrl+c使进程异常终止)

sudo -u www php think shopro:chat start

启动

调试模式启动 sudo -u www php think shopro:chat start

正式模式,守护进程方式启动 sudo -u www php think shopro:chat start d

停止

如果调试模式,直接 ctrl + c 即可
正式模式
sudo -u www php think shopro:chat stop

查看状态

正式模式
sudo -u www php think shopro:chat status

启动成功是这个样子的

  • 注意 workerman 输出的停止命令是错的,不要使用
  1. Workerman[shopro:chat] start in DAEMON mode
  2. ------------------------------------------------- WORKERMAN --------------------------------------------------
  3. Workerman version:4.0.9 PHP version:7.2.31
  4. -------------------------------------------------- WORKERS ---------------------------------------------------
  5. proto user worker listen processes status
  6. tcp root Register text://0.0.0.0:2238 1 [OK]
  7. tcp root ShoproChatBusinessWorker none 4 [OK]
  8. tcp root ShoproChatGateway websocket://0.0.0.0:1818 2 [OK]
  9. --------------------------------------------------------------------------------------------------------------
  10. Input "php shopro:chat stop" to stop. Start success.

windows 服务器

windows 不支持命令模式启动

启动服务请双击启动脚本

会打开一个命令窗口,并且停在那里

/addons/shopro/library/chat/start_for_win/shopro_chat_start_for_win.bat

关闭直接把命令窗口关掉即可