CentOS 30分鐘部署免費在線客服系統

前段時間我發表了一系列文章,開始介紹基於 .net core 的在線客服系統開發過程。期間有一些朋友希望能夠給出 Linux 環境的安裝部署指導,本文基於 CentOS 7.9 來安裝部署。

我詳細列出了需要執行的命令的全過程,跟隨本文可以在 30 分鐘內完成部署。

簡介

升訊威在線客服與營銷系統是基於 .net core / WPF 開發的一款在線客服軟件,宗旨是: 開放、開源、共享。努力打造 .net 社區的一款優秀開源產品。

完整私有化包下載地址

💾 https://kf.shengxunwei.com/freesite.zip

當前版本信息

發佈日期: 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 或更高版本

安裝數據庫引擎

  1. 下載
    wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

如果提示 command not found,則先執行 yum -y install wget 安裝

  1. 安裝
    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

  1. 啓動
    sudo systemctl start mysqld

  2. 查看安裝時生成的臨時密碼
    sudo cat /var/log/mysqld.log |grep password

  3. 使用臨時密碼連接 MySQL
    mysql -uroot -p

  4. 修改 root 密碼
    alter user root@localhost identified with mysql_native_password by '你的密碼';

安裝 Nginx

安裝依賴項

  1. 安裝 gcc
    yum -y install gcc

  2. 安裝 pcre、pcre-devel
    yum install -y pcre pcre-devel

  3. 安裝 zlib
    yum install -y zlib zlib-devel

  4. 安裝 openssl
    yum install -y openssl openssl-devel

安裝 nginx

  1. 下載
    wget http://nginx.org/download/nginx-1.20.1.tar.gz

如果提示 command not found,則先執行 yum install wget 安裝

  1. 解壓縮
    tar zxvf nginx-1.20.1.tar.gz

  2. 進入目錄
    cd nginx-1.20.1

  3. 安裝和配置,依次執行
    ./configure
    make
    make install

如果提示 command not found,則先執行 yum -y install gcc automake autoconf libtool make 安裝

設置開機自動啓動

  1. 進入到 /lib/systemd/system/ 目錄
    cd /lib/systemd/system/

  2. 創建 nginx.service 文件
    vim nginx.service

如果提示 command not found,則先執行 yum -y install vim 安裝

  1. 輸入以下內容後保存退出
    注意其中的 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

  1. 啓動 nginx
    systemctl start nginx.service

  2. 加入開機自啓動
    systemctl enable nginx.service

  3. 查看服務當前狀態
    systemctl status nginx.service

安裝 .Net Core

  1. 配置安裝源
    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

  2. 安裝
    sudo dnf install dotnet-sdk-3.1

如果提示 command not found,則先執行

  • yum -y install sudo
  • yum -y install dnf
  1. 確認安裝成功

在命令行輸入 dotnet 看到類似如下提示,表示安裝成功。

安裝依賴庫

安裝 libgdiplus

安裝該組件後訪客端頁面纔可以輸出圖形驗證碼。

  1. 安裝依賴
    yum install libgdiplus-devel -y

  2. 創建鏈接
    ln -s /usr/lib64/libgdiplus.so /usr/lib/gdiplus.dll
    ln -s /usr/lib64/libgdiplus.so /usr/lib64/gdiplus.dll

注意:如果是先啓動了服務器主程序(Server),再安裝 libgdiplus。需要重新啓動 Server 主程序以使 libgdiplus 生效。

創建數據庫

數據庫建表腳本位於私有化部署安裝包中的 數據庫建表腳本 目錄。
在創建數據庫表結構之前,將對應的數據庫建表腳本上傳到服務器工作目錄。

  1. 連接數據庫引擎
    mysql -uroot -p

  2. 創建數據庫
    create database kf;

  3. 切換到數據庫
    use kf

  4. 創建數據庫表結構
    source CreateDatabase_MySql.sql

配置和上傳客服系統服務端程序

修改配置文件

將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。

參閱:使用自動化工具配置服務器端程序

也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。

參閱:主程序配置文件修改維護說明
參閱:資源站點配置文件修改維護說明
參閱:Web 管理後臺配置文件修改維護說明

上傳服務端程序

  1. 在服務器建立目錄
    cd /
    mkdir wwwroot

  2. 上傳服務器程序
    將私有化部署包中的以下目錄上傳到新建的 wwwroot 目錄:

  • Management
  • Resource
  • Server

配置服務器主程序

修改配置文件

將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。

參閱:使用自動化工具配置服務器端程序

也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。

參閱:主程序配置文件修改維護說明

配置 Nginx

注意:服務端程序使用 5000 端口作爲反向代理,請勿佔用此端口。

  1. 編輯 nginx 配置文件
    vim /usr/local/nginx/conf/nginx.conf

  2. 在 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;
        }
}

示例文件:https://kf.shengxunwei.com/freesite/nginx.conf.txt

  1. 重新加載 nginx 配置文件
    cd /usr/local/nginx/sbin
    ./nginx -s reload

配置主程序

  1. 進入
    cd /lib/systemd/system/

  2. 創建文件
    vim kfServer.service

  3. 輸入以下內容後保存退出
    注意 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 文件重建,手工編輯內容再試。

  1. 啓動服務器主程序
    systemctl start kfServer.service

  2. 設置開機啓動
    systemctl enable kfServer.service

  3. 查看運行狀態
    systemctl status kfServer.service
    顯示綠色的 active(running) 表示啓動成功。

如需重新啓動服務器主程序,可使用命令 systemctl restart kfServer.service
在修改了主程序配置文件後,需要重新啓動以生效。

初始化主程序

  1. 訪問域名,進入 Status 查看狀態
    https://kf-api.yourname.com/Status

注意:直接訪問域名顯示 404 是正常的,主程序沒有默認頁面,請留意上面的示例網址,進入 Status 命令

請確認已經完成了對服務器主程序配置文件的配置。
參閱:使用自動化工具配置服務器端程序

  1. 初始化數據
    訪問域名,進入 Status/Setup 命令
    如:https://kf-api.yourname.com/Status/Setup

配置靜態資源站點

修改配置文件

將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。

參閱:使用自動化工具配置服務器端程序

也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。

參閱:資源站點配置文件修改維護說明

配置靜態資源站點

  1. 編輯 nginx 配置文件
    vim /usr/local/nginx/conf/nginx.conf

  2. 在 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;
        }
}

示例文件:https://kf.shengxunwei.com/freesite/nginx.conf.txt

  1. 重新加載 nginx 配置文件
    cd /usr/local/nginx/sbin
    ./nginx -s reload

配置 Web 管理後臺

修改配置文件

將服務端程序上傳之前,可先在本地電腦完成對配置文件的修改。

參閱:使用自動化工具配置服務器端程序

也可以選擇先把服務端程序上傳後,再通過 vim 手工對配置文件修改。

參閱:Web 管理後臺配置文件修改維護說明

配置 Web 管理後臺

  1. 編輯 nginx 配置文件
    vim /usr/local/nginx/conf/nginx.conf

  2. 在 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;
        }
}

示例文件:https://kf.shengxunwei.com/freesite/nginx.conf.txt

  1. 重新加載 nginx 配置文件
    cd /usr/local/nginx/sbin
    ./nginx -s reload

  2. 在瀏覽器中訪問你的 Web 管理後臺域名,顯示登錄畫面,使用 “配置服務器主程序” 完成時,初始化得到的默認登錄賬戶密碼登錄即可。

配置發佈客服端程序

請點擊參閱:配置發佈客服端程序

啓動客服端程序

壓縮包中的“Shell”目錄爲客服端程序。

  1. 找到 Shell 目錄下的“Sheng.Linkup.Client.Shell.exe”。

  1. 初次啓動時,配置服務地址。

  1. 配置完成後,顯示登錄界面。

  • 如果提示沒有返回版本信息,是因爲在配置服務器主程序後,沒有初始化數據。請查閱 配置服務器主程序 的結尾部分。
  • 如果登錄時提示“不允許對非連接的套接字執行此操作”,請檢查服務器的防火配置,將客服系統使用的通信規則添加到入站規則,參閱:準備操作系統
  1. 填寫默認密碼“123”,點擊“登錄”進入系統。

訪客聊天測試

登錄客服端以後,用瀏覽器打開你的資源站點域名下的聊天頁面,如:

kf-resource.shengxunwei.com/WebChat/WebChat.html?sitecode=freesite

開始聊天。

發佈

將配置好的客服端程序 Shell 目錄,壓縮或打包分發給客服使用即可。

集成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章