Linux 运行升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法

2023-07-29,,

前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程。

有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中不能丢下对 SQL Server 的支持,必须让系统同时支持 SQL Server 和 MySQL。

为了简化安装部署过程,我开发了一个配套的配置工具。

使用自动化配置工具,可以在“数据库引擎”这一项中,切换 SQL Server 和 MySQL,而不需要部署不同的两套程序。

在本文我将介绍:

CentOS 安装配置 MySQL 数据库,创建数据库,执行脚本创建表结构。
安装 Nginx,反向代理到客服系统服务端,并设置开机自启动
安装 .net core ,部署客服系统并开机自启动

我详细列出了需要执行的命令的全过程,跟随本文可以在 30 分钟内完成部署。

简介

升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。

完整私有化包下载地址

https://kf.shengxunwei.com

当前版本信息

发布日期: 2022-5-15

数据库版本: 20220219a

通信协议版本: 20220306

服务器版本: 1.10.5.0

客服程序版本: 1.9.3.0

资源站点版本: 1.5.9.0

Web 管理后台版本: 1.1.7.0

准备操作系统

本文以 CentOS 8.3 为例进行说明,其它版本的 Linux 安装配置过程大同小异。

开放防火墙端口

客服系统默认使用 9527 端口进行通信,如果开启了防火墙,请在防火墙中开放此端口。

也可以更改为其它可用端口号,在后续配置客服系统服务端程序时要做对应的修改。

请确保您所使用的主机服务商提供的防火墙服务中,也开放了对应端口。如阿里云服务器需要在安全组规则中配置。

安装 MySQL 数据库引擎

    下载

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

    安装

    sudo yum install mysql80-community-release-el8-1.noarch.rpm -y

    sudo yum install mysql-community-server -y

如果报 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 安装

    启动 nginx 服务

    cd /usr/local/nginx/sbin

    ./nginx

    查看nginx服务是否启动成功

    ps -ef | grep nginx

    访问你的服务器IP

    看到显示欢迎页面。

设置开机自动启动

    进入到 /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 dnf install dotnet-sdk-3.1

创建数据库

    连接数据库引擎

    mysql -uroot -p

    创建数据库

    create database kf

    切换到数据库

    use kf

    创建数据库表结构

    source createDatabase.sql

配置服务器主程序

请确认已经完成了对服务器主程序配置文件的配置。

参阅:使用自动化工具配置服务器端程序

配置主程序站点

    上传并解压缩 Server 目录

    tar -xvf Server.tar

    编辑 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;
}
}

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

    重新加载 nginx 配置文件

    cd /usr/local/nginx/sbin

    ./nginx -s reload

    测试运行

    cd /root/wwwroot/Server/

    dotnet Sheng.Linkup.Server.dll &

    访问域名,进入 Status 查看状态

    https://kf-api.yourname.com/Status

    初始化数据

    访问域名,进入 Status/Setup 命令

    如:https://kf-api.yourname.com/Status/Setup

设置开机自启动

    进入

    cd /lib/systemd/system/

    创建文件

    vim kfServer.service

    输入以下内容后保存退出

    注意 WorkingDirectory 为您的 Server 目录

[Unit]
Description=kfServer service
After=network.target
[Service]
Type=simple
GuessMainPID=true
WorkingDirectory=/root/wwwroot/Server/
StandardOutput=journal
StandardError=journal
ExecStart=dotnet Sheng.Linkup.Server.dll &
Restart=always
[Install]
WantedBy=multi-user.target

    启动服务器主程序

    systemctl start kfServer.service

    设置开机启动

    systemctl enable kfServer.service

    查看运行状态

    systemctl status kfServer.service

配置静态资源站点

请确认已经完成了对服务器主程序配置文件的配置。

参阅:使用自动化工具配置服务器端程序

配置静态资源站点

    上传并解压缩 Resource 目录

    tar -xvf Resource.tar

    编辑 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 /root/wwwroot/Resource;
index v.html;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
    为目录赋予访问权限
chmod 777 /root
chmod 777 /root/wwwroot
chmod 777 /root/wwwroot/Resource

配置发布客服端程序

此页面显示的是私有化部署版本的客服端配置说明,如果您在线使用,下载客服端程序请至:下载安装客服端软件

客服端程序运行需求

操作系统:

Windows 7 SP1 或更高版本
Windows Server 2008 R2 SP1 或更高版本

依赖:

本程序需要 .Net Framework 4.8 或更高版本。

私有化部署免费版压缩包中已经提供了“ndp48-web.exe”,这是 .Net Framework 4.8 的在线安装程序,推荐使用。只有 1 MB 多的大小,能够自动判断电脑是否已经安装了 .Net Framework 4.8 。

声明

客服程序没有任何恶意代码并经过病毒扫描。 使用的是:

ESET Internet Security
McAfee Total Protection

如果执行安装程序时显示 Windows SmartScreen 筛选器窗口,请点击“更多信息”后,点击“运行”按钮即可。

出现该窗口的原因 并不是发现恶意代码 ,而是单纯的指程序没有企业签名。

代码签名证书的价格较贵,需要每年近万元的费用,对于免费软件来说 成本高昂

此外 360 如果出现类似提示也是由于类似原因,并不是发现恶意代码,而是需要向 360 缴纳认证费。

启动客服端程序

压缩包中的“Shell”目录为客服端程序。

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

    初次启动时,配置服务地址。

    配置完成后,显示登录界面。

如果提示没有返回版本信息,是因为在配置服务器主程序后,没有初始化数据。请查阅 配置服务器主程序 的结尾部分。
如果登录时提示“不允许对非连接的套接字执行此操作”,请检查服务器的防火配置,将客服系统使用的通信规则添加到入站规则,参阅:准备操作系统

    填写默认密码“123”,点击“登录”进入系统。

访客聊天测试

登录客服端以后,用浏览器打开你的资源站点域名下的聊天页面,如:

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

开始聊天。

发布

将配置好的客服端程序 Shell 目录,压缩或打包分发给客服使用即可。

集成

集成到您的网站
集成到您的手机APP
集成到您的公众号等平台
深度集成:传递您的访客数据到客服系统

Linux 运行升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法的相关教程结束。

《Linux 运行升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法.doc》

下载本文的Word格式文档,以方便收藏与打印。