前段時間我發表了一系列文章,開始介紹基於 .net core 的在線客服系統開發過程。期間有一些朋友希望能夠給出 Linux 環境的安裝部署指導,本文基於 CentOS 7.9 來安裝部署。
我詳細列出了需要執行的命令的全過程,跟隨本文可以在 30 分鐘內完成部署。
簡介
升訊威在線客服與營銷系統是基於 .net core / WPF 開發的一款在線客服軟件,宗旨是: 開放、開源、共享。努力打造 .net 社區的一款優秀開源產品。
完整私有化包下載地址
當前版本信息
發佈日期: 2023-7-9
數據庫版本: 20230402a
通信協議版本: 20220306
服務器版本: 1.11.10.0
客服程序版本: 1.11.2.0
更新程序版本: 1.2.0.0
資源站點版本: 1.6.2.0
Web管理後臺版本: 2.0
準備操作系統
- 本文以 CentOS 7.9 爲例進行說明,其它版本的 Linux 安裝配置過程大同小異。
開放防火牆端口
客服系統默認使用 9527 端口進行通信,如果開啓了防火牆,請在防火牆中開放此端口。
也可以更改爲其它可用端口號,在後續配置客服系統服務端程序時要做對應的修改。
請確保您所使用的主機服務商提供的防火牆服務中,也開放了對應端口。如阿里雲服務器需要在安全組規則中配置。
請使用 MySQL 5.7 或更高版本
安裝數據庫引擎
- 下載
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
如果提示 command not found,則先執行
yum -y install wget
安裝
- 安裝
sudo yum install mysql80-community-release-el8-1.noarch.rpm -y
sudo yum install mysql-community-server -y
如果提示 command not found,則先執行
yum -y install sudo
安裝
如果報 Error: Unable to find a match: mysql-community-server
則先執行yum module disable mysql
然後再執行sudo yum install mysql-community-server -y
-
啓動
sudo systemctl start mysqld
-
查看安裝時生成的臨時密碼
sudo cat /var/log/mysqld.log |grep password
-
使用臨時密碼連接 MySQL
mysql -uroot -p
-
修改 root 密碼
alter user root@localhost identified with mysql_native_password by '你的密碼';
安裝 Nginx
安裝依賴項
-
安裝 gcc
yum -y install gcc
-
安裝 pcre、pcre-devel
yum install -y pcre pcre-devel
-
安裝 zlib
yum install -y zlib zlib-devel
-
安裝 openssl
yum install -y openssl openssl-devel
安裝 nginx
- 下載
wget http://nginx.org/download/nginx-1.20.1.tar.gz
如果提示 command not found,則先執行
yum install wget
安裝
-
解壓縮
tar zxvf nginx-1.20.1.tar.gz
-
進入目錄
cd nginx-1.20.1
-
安裝和配置,依次執行
./configure
make
make install
如果提示 command not found,則先執行
yum -y install gcc automake autoconf libtool make
安裝
設置開機自動啓動
-
進入到 /lib/systemd/system/ 目錄
cd /lib/systemd/system/
-
創建 nginx.service 文件
vim nginx.service
如果提示 command not found,則先執行
yum -y install vim
安裝
- 輸入以下內容後保存退出
注意其中的 nginx 安裝路徑
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
內容說明
Description:描述服務
After:描述服務類別
[Service]服務運行參數的設置
Type=forking是後臺運行的形式
ExecStart爲服務的具體運行命令
ExecReload爲重啓命令
ExecStop爲停止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
注意:[Service]的啓動、重啓、停止命令全部要求使用絕對路徑
[Install]運行級別下服務安裝的相關設置,可設置爲多用戶,即系統運行級別爲3
-
啓動 nginx
systemctl start nginx.service
-
加入開機自啓動
systemctl enable nginx.service
-
查看服務當前狀態
systemctl status nginx.service
安裝 .Net Core
-
配置安裝源
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
-
安裝
sudo dnf install dotnet-sdk-3.1
如果提示 command not found,則先執行
yum -y install sudo
yum -y install dnf
- 確認安裝成功
在命令行輸入 dotnet
看到類似如下提示,表示安裝成功。
安裝依賴庫
安裝 libgdiplus
安裝該組件後訪客端頁面纔可以輸出圖形驗證碼。
-
安裝依賴
yum install libgdiplus-devel -y
-
創建鏈接
ln -s /usr/lib64/libgdiplus.so /usr/lib/gdiplus.dll
ln -s /usr/lib64/libgdiplus.so /usr/lib64/gdiplus.dll
注意:如果是先啓動了服務器主程序(Server),再安裝 libgdiplus。需要重新啓動 Server 主程序以使 libgdiplus 生效。
創建數據庫
數據庫建表腳本位於私有化部署安裝包中的
數據庫建表腳本
目錄。
在創建數據庫表結構之前,將對應的數據庫建表腳本上傳到服務器工作目錄。
-
連接數據庫引擎
mysql -uroot -p
-
創建數據庫
create database kf;
-
切換到數據庫
use kf
-
創建數據庫表結構
source CreateDatabase_MySql.sql
配置和上傳客服系統服務端程序
修改配置文件
將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。
也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。
參閱:主程序配置文件修改維護說明
參閱:資源站點配置文件修改維護說明
參閱:Web 管理後臺配置文件修改維護說明
上傳服務端程序
-
在服務器建立目錄
cd /
mkdir wwwroot
-
上傳服務器程序
將私有化部署包中的以下目錄上傳到新建的 wwwroot 目錄:
- Management
- Resource
- Server
配置服務器主程序
修改配置文件
將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。
也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。
配置 Nginx
注意:服務端程序使用 5000 端口作爲反向代理,請勿佔用此端口。
-
編輯 nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf
-
在 Server 節點 平級 添加如下內容
注意server_name
處替換爲你所使用的域名。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream dotnet_server_proxy {
server localhost:5000;
keepalive 2000;
}
server{
listen 80;
listen [::]:80;
server_name kf-api.yourname.com;
location / {
proxy_pass http://dotnet_server_proxy;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
- 重新加載 nginx 配置文件
cd /usr/local/nginx/sbin
./nginx -s reload
配置主程序
-
進入
cd /lib/systemd/system/
-
創建文件
vim kfServer.service
-
輸入以下內容後保存退出
注意WorkingDirectory
爲您的 Server 目錄
[Unit]
Description=kfServer service
After=network.target
[Service]
Type=simple
GuessMainPID=true
WorkingDirectory=/wwwroot/Server/
StandardOutput=journal
StandardError=journal
ExecStart=/usr/local/bin/dotnet Sheng.Linkup.Server.dll &
Restart=always
[Install]
WantedBy=multi-user.target
注意:在 CentOS 8 中,ExecStart 後無需要輸入完整路徑,如
ExecStart=dotnet Sheng.Linkup.Server.dll &
注意:通過終端工具複製粘貼文本可能會因爲編碼或換行符等問題導致服務無法啓動。
如果遇到不明原因的服務無法啓動問題,刪除 kfServer.service 文件重建,手工編輯內容再試。
-
啓動服務器主程序
systemctl start kfServer.service
-
設置開機啓動
systemctl enable kfServer.service
-
查看運行狀態
systemctl status kfServer.service
顯示綠色的 active(running) 表示啓動成功。
如需重新啓動服務器主程序,可使用命令
systemctl restart kfServer.service
。
在修改了主程序配置文件後,需要重新啓動以生效。
初始化主程序
- 訪問域名,進入 Status 查看狀態
https://kf-api.yourname.com/Status
注意:直接訪問域名顯示 404 是正常的,主程序沒有默認頁面,請留意上面的示例網址,進入
Status
命令
請確認已經完成了對服務器主程序配置文件的配置。
參閱:使用自動化工具配置服務器端程序
- 初始化數據
訪問域名,進入Status/Setup
命令
如:https://kf-api.yourname.com/Status/Setup
配置靜態資源站點
修改配置文件
將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。
也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。
配置靜態資源站點
-
編輯 nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf
-
在 Server 節點平級添加如下內容
注意server_name
處替換爲你所使用的域名。
location
下的root
後爲 Resource 目錄路徑。
server {
listen 80;
server_name kf-resource.yourname.com;
location / {
root /wwwroot/Resource;
index v.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
- 重新加載 nginx 配置文件
cd /usr/local/nginx/sbin
./nginx -s reload
配置 Web 管理後臺
修改配置文件
將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。
也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。
配置 Web 管理後臺
-
編輯 nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf
-
在 Server 節點平級添加如下內容
注意server_name
處替換爲你所使用的域名。
location
下的root
後爲 Management 目錄路徑。
server {
listen 80;
server_name kf-m.yourname.com;
location / {
root /wwwroot/Management;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
-
重新加載 nginx 配置文件
cd /usr/local/nginx/sbin
./nginx -s reload
-
在瀏覽器中訪問你的 Web 管理後臺域名,顯示登錄畫面,使用 “配置服務器主程序” 完成時,初始化得到的默認登錄賬戶密碼登錄即可。
配置發佈客服端程序
請點擊參閱:配置發佈客服端程序
啓動客服端程序
壓縮包中的“Shell”目錄爲客服端程序。
- 找到 Shell 目錄下的“Sheng.Linkup.Client.Shell.exe”。
- 初次啓動時,配置服務地址。
- 配置完成後,顯示登錄界面。
- 填寫默認密碼“123”,點擊“登錄”進入系統。
訪客聊天測試
登錄客服端以後,用瀏覽器打開你的資源站點域名下的聊天頁面,如:
kf-resource.shengxunwei.com/WebChat/WebChat.html?sitecode=freesite
開始聊天。
發佈
將配置好的客服端程序 Shell 目錄,壓縮或打包分發給客服使用即可。