宝塔 30分钟部署免费在线客服系统

news2024/11/25 20:34:04

客服系统发布以来,一直有朋友询问如何在宝塔面板中安装部署,开始我一直认为参考 Linux 版的安装教程就可以了,一直没有专门写宝塔环境的教程。这段时间来咨询的朋友越来越多,经过了解,我才知道宝塔面板的普及率有多高,好吧,那我就认真对待一下这个问题,详细编写了基于宝塔安装部署升讯威在线客服系统的教程。

在编写这个教程之后,我也被宝塔拖入坑了,确实很方便!以前我们部署发布环境,都是在 Linux 上直接操作,对面板类的运维工具不是很感冒。这次详细的了解和操作之后,只能感慨技术发展的太快,面板工具已经和早年我们印象中的样子完全不同了,估计以后我自己再在 Linux 上部署新系统,也会先来一套宝塔再说。

在宝塔面板上部署整套客服系统,流程熟悉以后 , 10 分钟都不要。确实牛批。

简介

升讯威在线客服与营销系统是基于 .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 安装配置过程大同小异。

准备服务器和安装宝塔的过程本文不再赘述。

客服系统的私有化安装部署包可以在此下载 📩 :https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/553293a8-dfa1-4282-bc3f-96c6c623fc9a


安装 LNMP 套件

登录宝塔面板后,勾选并安装以下组件:

  • Nginx
  • MySQL
  • PHP
  • phpMyAdmin

客服系统对以上组件的版本没有特殊要求,可自由选择安装较新版本。
详细操作过程本文不再赘述,有需要可参阅:https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/37b59df0-30aa-4609-97b4-374b2bfc564f

安装 .Net Core

进入宝塔面板的“终端”画面。

安装 .Net Core

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

安装依赖库

进入宝塔面板的“终端”画面。

安装 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 生效。
重新启动的方法是进入“软件商店”画面,进入 “Supervisor 管理器”,在主程序的“进程管理”列点击运行状态以使之重新启动。

放行客服程序端口

9527 是客服程序默认使用的 TCP/IP 通信端口,也可以在配置主程序时修改为其它端口号。
注意:私有化部署免费版固定使用 9527 端口,请勿修改。

进入宝塔面板的“安全”画面,在防火墙标题下的“放行端口”后输入“9527”,点击“执行”。

放行成功后,该端口显示在列表中。

创建数据库

进入宝塔面板的“数据库”画面后,点击“添加数据库”。

创建数据库完成后,点击右侧的“管理”。

使用创建数据库时设置的用户名和密码登录 phpMyAdmin。

选中左侧新建的数据库“kf”,将右侧标签页切换到“SQL”,然后将私有化部署安装包中提供的建表脚本复制到输入区,点击右侧的“执行”按钮。

提示成功后,完成数据库表结构创建。

配置和上传客服系统服务端程序

修改配置文件

将服务端程序上传之前,可先在本地电脑完成对配置文件的修改。

参阅:使用自动化工具配置服务器端程序 https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/6bcdb41b-c963-46e9-aa42-e4ef4bf5f5f3

也可以选择先把服务端程序上传后,再通过宝塔的“文件”功能,手工对配置文件修改。

参阅:配置文件修改维护说明 https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/ca613726-63f2-4c7d-934f-b8b104281407

上传服务器程序

在宝塔面板中进入“文件”功能,进入 /www/wwwroot 目录,将私有化部署包中的以下目录上传到该目录:

  • Management
  • Resource
  • Server

如果要修改配置文件,找到要修改的配置文件,双击启动编辑即可。

配置服务器主程序

注意:服务端程序使用 5000 端口作为反向代理,请勿占用此端口。

安装 Supervisor 管理器并启动客服主程序

进入宝塔面板的“软件商店”画面,搜索“Supervisor”并安装。

安装成功后点击“Supervisor”右侧的“设置”。

在“Supervisor 管理器”中,添加守护进程:

  • 运行目录选择 /www/wwwroot/Server
  • 启动命令输入 dotnet Sheng.Linkup.Server.dll
  • 进程数量 1
    点击“确定”按钮添加。

添加成功后,进程管理列显示“已启动”,表示主程序启动成功。

如果启动失败,可先切换到宝塔面板的“终端”功能,进入 /www/wwwroot/Server 目录后,执行 dotnet Sheng.Linkup.Server.dll 命令,观察提示的错误信息。
最常见的错误原因如数据库连接串配置错误,注意检查 Server 目录中的 AppSettings.json 文件,参阅:主程序配置文件修改维护说明
更多信息可参阅:检查单(部署遇到问题请对照检查)

添加和配置主程序站点

进入宝塔面板的“网站”画面,点击“添加网站”按钮,在弹出的添加对话框中,输入:

  • 你的主程序域名,如 kf-api.yourname.com
  • 根目录选择 /www/wwwroot/Server
  • PHP 版本选择 纯静态
    然后点击“提交”按钮。

添加成功后,点击右侧的“设置”,打开设置画面,然后切换到“配置文件”后,在开头部分添加以下内容:

map $http_upgrade $connection_upgrade {
default upgrade;
''   close;
}
upstream dotnet_server_proxy {
     server localhost:5000;                                                
     keepalive 2000;
}

接着切换到“反向代理”画面,点击“添加反向代理”按钮:

  • 目标 URL 输入 http://localhost:5000
    然后点击“提交”按钮。

添加反向代理成功后,点击“配置文件”。

在反向代理的配置文件中,将以下内容添加到 location / 节点:

proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

完成站点配置后,在站点列表中点击状态列中的“运行中”,重新启动站点以使配置全部生效。

初始化主程序

  1. 访问域名,进入 Status 查看状态
    https://kf-api.yourname.com/Status

注意:直接访问域名显示 404 是正常的,主程序没有默认页面,请留意上面的示例网址,进入 Status 命令

请确认已经完成了对服务器主程序配置文件的配置。
参阅:配置和上传客服系统服务端程序

  1. 初始化数据
    访问域名,进入 Status/Setup 命令
    如:https://kf-api.yourname.com/Status/Setup

配置静态资源站点

进入宝塔面板的“网站”画面,点击“添加网站”按钮,在弹出的添加对话框中,输入:

  • 你的主程序域名,如 kf-resource.yourname.com
  • 根目录选择 /www/wwwroot/Resource
  • PHP 版本选择 纯静态
    然后点击“提交”按钮。

添加成功后,点击右侧的“设置”,打开设置画面,然后切换到“默认文档”后,修改为 v.html,然后点击“添加”按钮:

访问静态资源站点的域名,如 http://kf-resource.yourname.com ,显示出版本信息。

配置 Web 管理后台

请确认已经完成了对服务器主程序配置文件的配置。
参阅:配置和上传客服系统服务端程序

添加和配置配置 Web 管理后台站点

进入宝塔面板的“网站”画面,点击“添加网站”按钮,在弹出的添加对话框中,输入:

  • 你的主程序域名,如 kf-m.yourname.com
  • 根目录选择 /www/wwwroot/Management
  • PHP 版本选择 纯静态
    然后点击“提交”按钮。

访问 Web 管理后台站点的域名,如 http://kf-m.yourname.com ,显示登录画面。

配置发布客服端程序

请参阅:配置发布客服端程序https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/5de7cef6-ac56-4916-b2cd-c1760cd9ae48

结束~

希望对你有用,支持请点个赞吧~ 谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/770479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是Spring Actuator?它有什么优势?

目录 一、什么是Spring Actuator 二、Spring Actuator的应用场景 三、Spring Actuator的优势 一、什么是Spring Actuator Spring Actuator是Spring Boot提供的一个功能强大的管理和监控工具,用于监控和管理Spring Boot应用程序。它可以提供对应用程序的运行时信…

java实现身份证号码校验

二代身份证为18位,前六位为籍贯信息,7至14位为生日,最后一位校验前17位号码是否正确 校验规则为:前17位每一位乘以一个固定权重并相加然后除以11得到的余数,判断余数是否和校验的数相等 代码实现(支持15位…

leetcode 9 回文数

class Solution {public boolean isPalindrome(int x) {if(x < 0){return false;}int num x;int value 0;while(num > 0){value value * 10 num % 10;num num / 10;}return value x;} }

Enterprise:通过 App search 摄入数据

App Search 是 Elastic Enterprise Search 的一部分&#xff0c;Elastic Enterprise Search 是由 Elasticsearch 提供支持的内容搜索工具集合。 最初由 App Search 引入的一些功能&#xff08;例如网络爬虫&#xff09;现在可以直接通过企业搜索使用。 将这些功能与其他企业搜…

如何用DeepDiff测接口数据源变更?

开发同学最近变更了部分业务查询接口底层的数据源&#xff0c;希望测试同学能够针对这些接口进行一些回归验证&#xff0c;校验底层数据源更新前后业务查询接口返回的一致性&#xff0c;保证更新后对正常业务没有影响。 这个回归测试和一般接口测试有所区别&#xff0c;不仅仅…

混合背包(01+完全+多重背包大杂烩)

因为我们知道求解多重背包时&#xff0c;是将其进行二进制优化为01背包问题&#xff0c;那么我们就将01背包和多重背包看成一种情况&#xff0c;然后只要处理&#xff0c;完全背包和01背包问题即可&#xff08;详细看下方代码&#xff09; #include<bits/stdc.h> using n…

leetcode 965.单值二叉树

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;单值二叉树 思路&#xff1a; 让当前的根节点与左孩子节点与右孩子节点判断&#xff0c;若相等则继续向下分治&#xff0c;让左孩子与右孩子当作新的根节点继续判断&#xff0c;直到某个节点不相等。 1️⃣ 代码&#x…

JUC常用4大并发工具类详解

什么是 JUC JUC 就是 java.util.concurrent 包,这个包俗称 JUC,里面都是解决并发问题的一些东西,该包的位置位于 java 下面的 rt.jar 包下面。 JUC 中 4 大常用并发工具类 CountDownLatch CyclicBarrier Semaphore ExChanger CountDownLatch CountDownLatch,俗称闭锁,作用…

关于 PostgreSQL 删除数据库 - 命令行删除,报错数据库不存在,pgadmin 报错存在会话链接 导致无法删除数据库问题

序言 测试环境&#xff1a; Windows 10问题 笔者尝试过在 cmd 命令行&#xff0c;使用PostgreSQL 的 psql 工具登录 postgresql&#xff0c;删除某个有问题的数据库&#xff0c;准备新建重载该数据库时&#xff0c;发现 DROP DATABASE database_name &#xff0c;竟然报错该…

esp32-cam红外实时监控报警系统(巴发云和邮箱同时推送)

esp32-cam红外实时监控报警系统 设想-巴发云转折-照片数量限制代码避开巴发云照片限制邮箱的坑同时我的巴发云微信也受到了提醒报警&#xff0c;虽然没有图片显示。 设想-巴发云 我想做一个人体红外传感器发现人体报警&#xff0c;同时给我手机发报警提醒&#xff0c;同时发送…

《数据结构》数据结构概念,顺序表,链表

目录 1. 为什么学习数据结构&#xff1f; 2. 数据结构 2.1. 数据 2.2. 逻辑结构 2.3. 存储结构 2.4. 操作 3. 算法 3.1. 算法与程序 3.2. 算法与数据结构 3.3. 算法的特性 3.4. 如何评价一个算法的好坏 4. 线性表 4.1. 顺序表 4.2. 单向链表 4.3. 单向循环链表&…

使用NVIDIA FX Composer验证多纹理合成效果

最近项目上有一个需求&#xff0c;需要将4张带透明通道纹理合成为一张&#xff0c;并且每张纹理指定一个全局透明度。由于纹理过多&#xff0c;合成效果无法保证&#xff0c;为了减少项目的风险&#xff0c;领导希望我先快速验证一下我们讨论的方法是否能完成项目的要求。因此我…

GO语言泛型

set一般没什么不方便的 但是使用GET 需要使用类型断言,将取出来的数据转为预期数据, 空接口本身是一个装箱,会产生内存逃逸和多一部分空间. 于是1.17GO使用泛型. 泛型实现: 分析可执行文件后:发现 也就是泛型会为每个数据类型都生产一套代码,导致可执行文件大小增加,并且使用…

在企业使用jmeter开展实际的接口自动化测试工具

在企业使用jmeter开展实际的接口自动化测试工具&#xff0c;建议按如下操作流程&#xff0c; 可以使整个接口测试过程更规范&#xff0c;更有效。 接口自动化的流程&#xff1a; 1、获取到接口文档&#xff1a;swagger、word、excel ... 2、熟悉接口文档然后设计测试用例&am…

关于AES 和 BASE64 的理解

BASE64 首先 base64 是一种编码方式&#xff0c;它的字符集由64个不同字符组成&#xff08;A-Z、a-z、0-9和两个额外字符/&#xff09;&#xff0c;因此每个Base64字符都占用6个比特&#xff08;2^6 64&#xff09; Base64编码后的数据长度 4 * ceil(原始数据长度 / 3) 其中…

echarts 横向柱状图 刻度标签

echarts 横向柱状图 刻度标签 怎么调试都不左对齐 将width去掉固定宽度 echarts会自适应

如何录音转文字:探寻声音的文字之舞

随着科技的飞速进步&#xff0c;人们对于信息的传递和记录变得越发便捷。在这个数字化时代&#xff0c;录音转文字技术无疑是一颗璀璨的明珠&#xff0c;它让声音和文字在交织中跳跃&#xff0c;为我们带来了新的感知和体验。在这篇文章中&#xff0c;我们将深入探讨录音转文字…

DCDC芯片选型

一、BUCK芯片选型 最初MP2307特别好用&#xff0c;是由美国MPS公司推出

信息摘要 秘钥签名 数字签名 数字证书 数字验证 这都是什么东西?

信息摘要 秘钥签名 数字签名 数字证书 数字验证 这都是什么东西&#xff1f; 一下遇见这么多相近的名词&#xff0c;实在是难以区分理解&#xff0c;还是从这些概念产生的缘由理解吧 先看需求&#xff1a;如何保证 数据 在网络中传输时正确的&#xff1f;有没有被篡改&#x…

【算法 -- LeetCode】(022) 括号生成

1、题目 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 示例 2&#xff1a; 输入…