• 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 目录,压缩或打包分发给客服使用即可。

    集成

  • 相关阅读:
    【Python3】列表字典集合元组
    Cucumber 1 -- 什么是BDD、Cucumber?它们的关系是什么?
    公网环境下使用VNC远程连接Ubuntu系统桌面
    安卓毕业设计app项目基于Uniapp+SSM实现的安卓的掌上校园系统食堂缴费图书馆预约
    java 对比文件 md5实现秒传
    高手必备!电脑剪辑视频的实用方法
    SSM整合分页插件
    RpcProvider的网络服务,以及怎么发布服务方法
    Linux 下的 动静态库
    JWT认证机制(session具有局限性)支持跨域 原理 组成
  • 原文地址:https://www.cnblogs.com/sheng_chao/p/17553424.html