# 客服配置
文檔最后更新時間: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
#### 配置

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;
}
~~~
配置完整示例,注意截圖有限,反向代理下面是偽靜態和圖片跨域,之前配置好了的,都不需要動,只需要在最前面追加反向代理配置

#### ssl 證書配置方式
* 證書這里要直接使用 https 域名的證書,wss 證書,和 wss key 輸入框這里直接填寫證書的絕對地址
* 如果是寶塔證書地址在這里:寶塔-》網站-》設置-》配置文件 里面可以看到
* **注意如果是 linux 要確保客服進程啟動用戶有讀取證書的權限,可以改證書和所在目錄的權限,或者是將證書復制一份到項目目錄,把證書設置成 www 用戶所有**
##### 證書配置方法(推薦,以寶塔為例)
* 第一步,配置域名 https 證書,并且找到證書地址

* 第二步,去剛才的地址復制證書

* 第三步,將證書放入項目目錄,并且給上權限

* 第四步,將放置的完整證書地址填入客服配置

### 啟動服務
#### 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
~~~
##### 關閉直接把命令窗口關掉即可