🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 客服配置 文档最后更新时间:2021-06-09 11:05:21 ### 注意事项 * `shopro客服系统`采用`workerman`的`gateway-worker`作为服务基础,请先安装`gateway-worker`扩展包 * `shopro商城`兼容了插件市场的`workerman在线客服系统`,因`shopro`无法控制别的插件,如果使用`shopro客服系统`,请在插件管理禁用`workerman在线客服系统`,如果使用`workerman在线客服系统`,请在`商城配置,客服配置`,选择 workerman 在线客服系统 * 如果使用了 workerman 在线客服系统,请移步[workerman 在线客服](https://doc.fastadmin.net/kefu)文档 ### 安装部署 #### 安装扩展包 ~~~ 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 #### 配置 ![![image.png](https://cdn.fastadmin.net/uploads/20210531/5ee28a5c2c4d86923fe6165690512826.png "image.png") A8RVZ0CDphlZ50fTI0hdcg==](images/screenshot_1644736218519.png) ### 部署 wss * **注意反向代理和证书方式只需要配置一个即可** #### nginx 反向代理(如果nginx 建议使用) > 目前只提供 nginx 的配置文档,按照这个配置可以不用放行客服端口\[1819\] * **反向代理配置一定要在伪静态上面** * **反向代理配置一定要在伪静态上面** * **反向代理配置一定要在伪静态上面** 反向代理配置,注意修改里面的端口为自己后台配置的客服端口 Bpi79wa4a9lQspxW3o1K7w== ~~~ 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; } ~~~ 配置完整示例,注意截图有限,反向代理下面是伪静态和图片跨域,之前配置好了的,都不需要动,只需要在最前面追加反向代理配置 ![](https://img.kancloud.cn/0f/bd/0fbdce90201f529f06b478114ab858ea_759x496.png) #### ssl 证书配置方式 * 证书这里要直接使用 https 域名的证书,wss 证书,和 wss key 输入框这里直接填写证书的绝对地址 * 如果是宝塔证书地址在这里:宝塔-》网站-》设置-》配置文件 里面可以看到 * **注意如果是 linux 要确保客服进程启动用户有读取证书的权限,可以改证书和所在目录的权限,或者是将证书复制一份到项目目录,把证书设置成 www 用户所有** ##### 证书配置方法(推荐,以宝塔为例) * 第一步,配置域名 https 证书,并且找到证书地址 ![](https://img.kancloud.cn/4a/19/4a19b9be5ec306336a5adf0a1b15ae4a_1060x488.png) * 第二步,去刚才的地址复制证书 ![](https://img.kancloud.cn/45/35/453542db970e898b75722e6988a8fbe3_1703x314.png) * 第三步,将证书放入项目目录,并且给上权限 ![](https://img.kancloud.cn/c4/a6/c4a6c76713fdbbad96dd877da82406f8_1365x276.png) * 第四步,将放置的完整证书地址填入客服配置 ![](https://img.kancloud.cn/0b/14/0b149035e05794ab54209d228979c7a5_843x176.png) ### 启动服务 #### 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 输出的停止命令是错的,不要使用 ~~~ Workerman[shopro:chat] start in DAEMON mode ------------------------------------------------- WORKERMAN -------------------------------------------------- Workerman version:4.0.9 PHP version:7.2.31 -------------------------------------------------- WORKERS --------------------------------------------------- proto user worker listen processes status tcp root Register text://0.0.0.0:2238 1 [OK] tcp root ShoproChatBusinessWorker none 4 [OK] tcp root ShoproChatGateway websocket://0.0.0.0:1818 2 [OK] -------------------------------------------------------------------------------------------------------------- Input "php shopro:chat stop" to stop. Start success. ~~~ #### windows 服务器 > windows 不支持命令模式启动 ##### 启动服务请双击启动脚本 > 会打开一个命令窗口,并且停在那里 ~~~ /addons/shopro/library/chat/start_for_win/shopro_chat_start_for_win.bat ~~~ ##### 关闭直接把命令窗口关掉即可