如何打造一个轻量级、自建的在线客服系统?

2026-04-30 04:222阅读0评论服务器VPS
  • 内容介绍
  • 文章标签
  • 相关推荐

不是我唱反调... 哎呀,今天天气真不错,适合折腾代码。说实话,我最近心情有点复杂,主要是看着手里那台双十一抢来的服务器吃灰,心里实在不是滋味。你们知道双十一那个活动吧?就是那个什么双11,老用户也能抢到36元一年的2C2G4M的轻量服务器,这价格,简直跟白送一样。抢到的小伙伴们,你们是不是也跟我一样,除了装个宝塔面板,然后就不知道干啥了?别慌,今天我们就来整活,搞一个轻量级、自建的在线客服系统。这玩意儿听起来很高大上,其实吧,也就是那么回事儿,只要你耐得住性子,听我慢慢唠叨。

为什么要自建客服系统?这事儿得说道说道

拭目以待。 咱们做网站的,最怕什么?最怕用户想找你的时候找不到人。市面上的客服系统多如牛毛,什么爱番番、53客服,还有那个什么智八哥,功能是挺多,但是吧,都要钱!而且数据都在别人手里心里总是不踏实。咱们程序员的尊严在哪里?就是在于“自力更生,丰衣足食”。自建一个客服系统,不仅省钱,关键是数据私有,想怎么折腾就怎么折腾。

轻量应用服务器自建在线客服系统

而且, 这次我们要用的这个CRMChat系统,它是基于TP6+swoole4开发的,支持微信网页、H5端、PC端客服接入,商家端有PC端管理、H5端、App端接待,还能支持用户添加标签、分组等功能。前后端所有代码全部开源, 虽然不支持chatGPT,但是咱们要的是实实在在的沟通,不是跟机器人瞎扯淡,对吧?

准备工作:别光说不练

在开始之前,你得先有一台服务器。就像我刚才说的,腾讯云双十一那个39元的轻量服务器就挺不错的。配置不用太高,2核2G4M足够跑起来了。系统嘛, 我建议用CentOS 7.6或者Ubuntu 20.04,别用太老的,也别用太新的,太新的容易踩坑。还有,你得装个宝塔面板,这玩意儿虽然被很多老鸟鄙视,但是对于咱们这种想偷懒的人简直是神器。安装宝塔面板我就不教了官网一行代码搞定,不夸张地说...。

环境配置方面咱们需要PHP7.3、Nginx、MySQL、Redis。注意了PHP版本别搞错了虽然PHP8都出来了但是为了兼容性,咱们还是老老实实用7.3吧。 嗐... MySQL用5.6或者5.7都行, Redis是必须的,主要原因是Swoole需要它来做消息队列或者缓存什么的,反正没它不行。

环境配置:踩坑的开始

好了 服务器有了面板也有了现在开始配置环境。这一步最烦人,主要原因是总是会有各种各样奇怪的问题。先说说进入宝塔面板,点击软件商城找到PHP 7.3, 痛并快乐着。 点击安装。安装的时候记得把“编译安装”勾上,虽然慢点,但是稳定。装好之后别急着走,还得装插件。

点击PHP设置, 找到“安装 ”,我们需要安装三个东西:fileinforedisswoole4。这三个是必须的,少一个都不行。特别是swoole4 这可是这个系统的核心,没有它,这个客服系统就跑不起来性能也会大打折扣。安装的时候可能会有点慢,你可以去泡杯咖啡,或者刷会儿抖音。

装完插件还没完,还有一个关键步骤,就是删除禁用函数。宝塔面板为了平安, 默认禁用了一些函数,但是proc_open这个函数,咱们必须得用。在PHP设置里找到“禁用函数”, 搜索proc_open找到之后把它删了千万别手抖点成禁用了是删除!删掉之后记得在设置里重启一下PHP,不然配置不生效。这一步很多人容易忘,然后后面运行的时候报错,抓耳挠腮找不到原因,啥玩意儿?。

数据库和站点创建:基础操作

环境搞定了接下来咱们要创建数据库和站点。进入宝塔面板, 点击数据库创建一个数据库,数据库名随便起,比如crmchat用户名和密码记好, 动手。 一会儿安装的时候要用。建议把密码搞得复杂点,虽然咱们是自建,平安意识还是要有,别被人家把库给删了。

然后点击网站点击添加网站。域名填你自己的,如果没有域名,先用IP也行,但是最好还是搞个域名,看着专业点。PHP版本选择7.3,数据库选择刚才创建的那个。提交之后 宝塔会自动在网站目录下创建一些默认文件,比如index.html404.html什么的。咱们用不上这些,直接进网站目录,把里面的东西全删了清清爽爽,干干净净,也是没谁了...。

源码下载与部署:手把手教学

现在到了最激动人心的时刻了下载源码。这里为了省事,咱们直接用git下载。当然你也可以去官网下载zip包, 我无法认同... 然后传上去,但是那样太low了咱们要显得专业一点。打开宝塔面板的终端,或者用Xshell连上服务器。

在终端里输入git clone命令,后面跟上那个开源地址。这里我就不贴具体地址了反正就是那个CRMChat的仓库。下载速度可能有点慢,取决于你的网络。下载好之后你会看到一个目录,双击进去, 体验感拉满。 把里面的所有文件全选,剪切,然后回到你的网站根目录,粘贴。注意,是粘贴到根目录,不是子目录。粘贴完之后 你的网站目录里应该有一堆文件了比如apppublicconfig之类的。

接下来咱们要修改一下运行目录。在宝塔面板里 点击网站设置,找到“网站目录”,把运行目录改成/public。这一步很重要, 太虐了。 主要原因是TP6框架的入口文件在public目录下。不改的话,你是访问不到网站的。改完之后保存。

安装向导:填坑时间

现在 在浏览器里输入你的域名,如果一切顺利,你应该能看到安装向导了。如果看不到,检查一下上面的步骤有没有做错,特别是运行目录和PHP版本。看到安装向导之后点击“接受”,然后检查一下环境检测。这里应该全是绿色的勾,如果有红色的X,说明你刚才的插件没装好,或者禁用函数没删。回去检查,别硬着头皮点下一步,中肯。。

没问题的话,点下一步。这一步是配置数据库。把你在宝塔面板里创建的数据库名、用户名、密码填进去。数据库主机一般填127.0.0.1端口默认3306。填好之后点击下一步。系统会自动帮你建表,导入数据。这一步通常很快,几秒钟就搞定。

呃... 安装成功之后会提示你删除安装文件,或者给你一个后台地址。记好后台地址和密码,以后全靠它管理了。这时候,你访问前台,应该能看到客服系统的界面了。是不是很有成就感?别急,还没完呢,最关键的Swoole还没启动。

Swoole启动与反向代理:核心灵魂

这个CRMChat系统是基于Swoole的,所以必须启动Swoole服务才能实时通讯。不然的话,你的客服系统就是个摆设, 我们都... 发不出去消息,也收不到消息。回到宝塔面板的终端,进入你的网站根目录,也就是crmchat目录。

输入命令sudo -u www php think swoole restart。这个命令的意思是用www用户去启动Swoole服务。如果看到一堆输出,再说说显示“start success”之类的字样,说明启动成功了。如果报错,比如端口被占用,或者权限不足,你得自己去排查。端口被占用的话,换个端口,或者把占用的进程杀掉。

哎,对! 默认情况下Swoole用的端口是7788。这个端口必须在防火墙里放行,不然外网是访问不到的。先说说 在宝塔面板的“平安”里添加端口规则,协议选TCP/UDP,端口填7788,来源选所有IP,策略放行。然后去你的云服务器控制台,比如腾讯云轻量服务器,找到防火墙设置,也添加一个7788的规则。两边都要放行,少一边都不行。这一步非常关键,很多人卡在这里明明启动了就是连不上,再说说发现是防火墙没开。

别怕... 再说说咱们还需要配置一下反向代理。主要原因是Swoole是一个WebSocket服务,咱们需要通过Nginx把它代理出来。在宝塔面板的网站设置里 找到“配置文件”,在server块里添加一段反向代理的配置。大概意思就是把访问/ws或者特定路径的请求,转发到http://127.0.0.1:7788。具体的配置代码,官方文档里应该有,我就不贴了免得贴错了你们骂我。配置好之后重载Nginx配置。

功能体验与产品对比:看看咱们做得咋样

折腾了半天终于搞定了。现在你可以试试注册一个账号,然后体验一下客服功能。支持PC端、移动端,还能加标签、分组,功能确实挺全的。为了让大家更直观地了解咱们这个自建系统和市面上其他产品的区别,我特意做了一个表格,大家凑合着看,另起炉灶。。

功能/特性 CRMChat 市面上某SaaS客服A 传统在线聊天插件B
部署方式 私有云/自建服务器 公有云SaaS JS嵌入/第三方托管
数据平安性 极高 中等
成本投入 免费版功能受限
技术栈 PHP + Swoole + Vue 未知 简单JS/iframe
并发能力
二次开发难度 极高
我的心情指数 一般 无聊

看这个表格就知道,咱们自建的优势还是很大的。特别是数据平安性,对于一些对隐私要求比较高的行业,自建是唯一的选择。而且,代码全开源,你想怎么改就怎么改,比如加个自动回复机器人,或者对接一下自己的CRM系统,都行,在理。。

常见问题与碎碎念:别来问我

大体上... 虽然教程写得很详细了但是我知道肯定还是有人会遇到各种奇葩问题。比如 Swoole启动失败,提示什么proc_open函数不存在那就是你没听我的话,没去禁用函数里删它。或者,连接不上,提示502错误,那就是反向代理配置错了或者防火墙没开。还有,Redis连接失败,那就是Redis没启动,或者密码不对。

踩雷了。 遇到问题别慌,先看日志。日志在runtime/log目录下看看里面报什么错。大部分问题都是低级错误,比如目录权限不对,文件没上传完整之类的。实在不行,就去官方社区问问,别来问我,我也不是官方技术支持,我只是个搬运工。

说真的,搞这个玩意儿挺费精力的。特别是对于新手光是配置环境就能劝退一大半人。但是一旦你搞成功了那种成就感是花钱买不到的。看着自己的服务器上跑着自己亲手搭建的系统,心里那个美啊。而且, 以后跟人吹牛也有资本了“哎,我的客服系统是自己写的,基于Swoole的高性能系统”,多有面子,扯后腿。。

折腾永无止境

好了废话不多说了。这篇文章写得乱七八糟,希望能帮到大家。总的打造一个轻量级、自建的在线客服系统,并不是什么遥不可及的事情。只要有一台闲置的服务器,一点点Linux基础,再加上足够的耐心,你就能拥有一个属于自己的客服系统。

再说说提醒大家一句,服务器虽然便宜,但也别浪费。搭个客服系统只是第一步,以后还可以搭个博客,搭个私有网盘,甚至跑个游戏服务器。折腾嘛,就是乐趣。别让服务器在那儿吃灰,那是对人民币的不尊重。好了我要去喝口水了写这么多字,口都干了。大家有问题自己解决,解决不了就重装系统,重装系统能解决99%的问题。祝大家好运,折腾愉快!

不是我唱反调... 哎呀,今天天气真不错,适合折腾代码。说实话,我最近心情有点复杂,主要是看着手里那台双十一抢来的服务器吃灰,心里实在不是滋味。你们知道双十一那个活动吧?就是那个什么双11,老用户也能抢到36元一年的2C2G4M的轻量服务器,这价格,简直跟白送一样。抢到的小伙伴们,你们是不是也跟我一样,除了装个宝塔面板,然后就不知道干啥了?别慌,今天我们就来整活,搞一个轻量级、自建的在线客服系统。这玩意儿听起来很高大上,其实吧,也就是那么回事儿,只要你耐得住性子,听我慢慢唠叨。

为什么要自建客服系统?这事儿得说道说道

拭目以待。 咱们做网站的,最怕什么?最怕用户想找你的时候找不到人。市面上的客服系统多如牛毛,什么爱番番、53客服,还有那个什么智八哥,功能是挺多,但是吧,都要钱!而且数据都在别人手里心里总是不踏实。咱们程序员的尊严在哪里?就是在于“自力更生,丰衣足食”。自建一个客服系统,不仅省钱,关键是数据私有,想怎么折腾就怎么折腾。

轻量应用服务器自建在线客服系统

而且, 这次我们要用的这个CRMChat系统,它是基于TP6+swoole4开发的,支持微信网页、H5端、PC端客服接入,商家端有PC端管理、H5端、App端接待,还能支持用户添加标签、分组等功能。前后端所有代码全部开源, 虽然不支持chatGPT,但是咱们要的是实实在在的沟通,不是跟机器人瞎扯淡,对吧?

准备工作:别光说不练

在开始之前,你得先有一台服务器。就像我刚才说的,腾讯云双十一那个39元的轻量服务器就挺不错的。配置不用太高,2核2G4M足够跑起来了。系统嘛, 我建议用CentOS 7.6或者Ubuntu 20.04,别用太老的,也别用太新的,太新的容易踩坑。还有,你得装个宝塔面板,这玩意儿虽然被很多老鸟鄙视,但是对于咱们这种想偷懒的人简直是神器。安装宝塔面板我就不教了官网一行代码搞定,不夸张地说...。

环境配置方面咱们需要PHP7.3、Nginx、MySQL、Redis。注意了PHP版本别搞错了虽然PHP8都出来了但是为了兼容性,咱们还是老老实实用7.3吧。 嗐... MySQL用5.6或者5.7都行, Redis是必须的,主要原因是Swoole需要它来做消息队列或者缓存什么的,反正没它不行。

环境配置:踩坑的开始

好了 服务器有了面板也有了现在开始配置环境。这一步最烦人,主要原因是总是会有各种各样奇怪的问题。先说说进入宝塔面板,点击软件商城找到PHP 7.3, 痛并快乐着。 点击安装。安装的时候记得把“编译安装”勾上,虽然慢点,但是稳定。装好之后别急着走,还得装插件。

点击PHP设置, 找到“安装 ”,我们需要安装三个东西:fileinforedisswoole4。这三个是必须的,少一个都不行。特别是swoole4 这可是这个系统的核心,没有它,这个客服系统就跑不起来性能也会大打折扣。安装的时候可能会有点慢,你可以去泡杯咖啡,或者刷会儿抖音。

装完插件还没完,还有一个关键步骤,就是删除禁用函数。宝塔面板为了平安, 默认禁用了一些函数,但是proc_open这个函数,咱们必须得用。在PHP设置里找到“禁用函数”, 搜索proc_open找到之后把它删了千万别手抖点成禁用了是删除!删掉之后记得在设置里重启一下PHP,不然配置不生效。这一步很多人容易忘,然后后面运行的时候报错,抓耳挠腮找不到原因,啥玩意儿?。

数据库和站点创建:基础操作

环境搞定了接下来咱们要创建数据库和站点。进入宝塔面板, 点击数据库创建一个数据库,数据库名随便起,比如crmchat用户名和密码记好, 动手。 一会儿安装的时候要用。建议把密码搞得复杂点,虽然咱们是自建,平安意识还是要有,别被人家把库给删了。

然后点击网站点击添加网站。域名填你自己的,如果没有域名,先用IP也行,但是最好还是搞个域名,看着专业点。PHP版本选择7.3,数据库选择刚才创建的那个。提交之后 宝塔会自动在网站目录下创建一些默认文件,比如index.html404.html什么的。咱们用不上这些,直接进网站目录,把里面的东西全删了清清爽爽,干干净净,也是没谁了...。

源码下载与部署:手把手教学

现在到了最激动人心的时刻了下载源码。这里为了省事,咱们直接用git下载。当然你也可以去官网下载zip包, 我无法认同... 然后传上去,但是那样太low了咱们要显得专业一点。打开宝塔面板的终端,或者用Xshell连上服务器。

在终端里输入git clone命令,后面跟上那个开源地址。这里我就不贴具体地址了反正就是那个CRMChat的仓库。下载速度可能有点慢,取决于你的网络。下载好之后你会看到一个目录,双击进去, 体验感拉满。 把里面的所有文件全选,剪切,然后回到你的网站根目录,粘贴。注意,是粘贴到根目录,不是子目录。粘贴完之后 你的网站目录里应该有一堆文件了比如apppublicconfig之类的。

接下来咱们要修改一下运行目录。在宝塔面板里 点击网站设置,找到“网站目录”,把运行目录改成/public。这一步很重要, 太虐了。 主要原因是TP6框架的入口文件在public目录下。不改的话,你是访问不到网站的。改完之后保存。

安装向导:填坑时间

现在 在浏览器里输入你的域名,如果一切顺利,你应该能看到安装向导了。如果看不到,检查一下上面的步骤有没有做错,特别是运行目录和PHP版本。看到安装向导之后点击“接受”,然后检查一下环境检测。这里应该全是绿色的勾,如果有红色的X,说明你刚才的插件没装好,或者禁用函数没删。回去检查,别硬着头皮点下一步,中肯。。

没问题的话,点下一步。这一步是配置数据库。把你在宝塔面板里创建的数据库名、用户名、密码填进去。数据库主机一般填127.0.0.1端口默认3306。填好之后点击下一步。系统会自动帮你建表,导入数据。这一步通常很快,几秒钟就搞定。

呃... 安装成功之后会提示你删除安装文件,或者给你一个后台地址。记好后台地址和密码,以后全靠它管理了。这时候,你访问前台,应该能看到客服系统的界面了。是不是很有成就感?别急,还没完呢,最关键的Swoole还没启动。

Swoole启动与反向代理:核心灵魂

这个CRMChat系统是基于Swoole的,所以必须启动Swoole服务才能实时通讯。不然的话,你的客服系统就是个摆设, 我们都... 发不出去消息,也收不到消息。回到宝塔面板的终端,进入你的网站根目录,也就是crmchat目录。

输入命令sudo -u www php think swoole restart。这个命令的意思是用www用户去启动Swoole服务。如果看到一堆输出,再说说显示“start success”之类的字样,说明启动成功了。如果报错,比如端口被占用,或者权限不足,你得自己去排查。端口被占用的话,换个端口,或者把占用的进程杀掉。

哎,对! 默认情况下Swoole用的端口是7788。这个端口必须在防火墙里放行,不然外网是访问不到的。先说说 在宝塔面板的“平安”里添加端口规则,协议选TCP/UDP,端口填7788,来源选所有IP,策略放行。然后去你的云服务器控制台,比如腾讯云轻量服务器,找到防火墙设置,也添加一个7788的规则。两边都要放行,少一边都不行。这一步非常关键,很多人卡在这里明明启动了就是连不上,再说说发现是防火墙没开。

别怕... 再说说咱们还需要配置一下反向代理。主要原因是Swoole是一个WebSocket服务,咱们需要通过Nginx把它代理出来。在宝塔面板的网站设置里 找到“配置文件”,在server块里添加一段反向代理的配置。大概意思就是把访问/ws或者特定路径的请求,转发到http://127.0.0.1:7788。具体的配置代码,官方文档里应该有,我就不贴了免得贴错了你们骂我。配置好之后重载Nginx配置。

功能体验与产品对比:看看咱们做得咋样

折腾了半天终于搞定了。现在你可以试试注册一个账号,然后体验一下客服功能。支持PC端、移动端,还能加标签、分组,功能确实挺全的。为了让大家更直观地了解咱们这个自建系统和市面上其他产品的区别,我特意做了一个表格,大家凑合着看,另起炉灶。。

功能/特性 CRMChat 市面上某SaaS客服A 传统在线聊天插件B
部署方式 私有云/自建服务器 公有云SaaS JS嵌入/第三方托管
数据平安性 极高 中等
成本投入 免费版功能受限
技术栈 PHP + Swoole + Vue 未知 简单JS/iframe
并发能力
二次开发难度 极高
我的心情指数 一般 无聊

看这个表格就知道,咱们自建的优势还是很大的。特别是数据平安性,对于一些对隐私要求比较高的行业,自建是唯一的选择。而且,代码全开源,你想怎么改就怎么改,比如加个自动回复机器人,或者对接一下自己的CRM系统,都行,在理。。

常见问题与碎碎念:别来问我

大体上... 虽然教程写得很详细了但是我知道肯定还是有人会遇到各种奇葩问题。比如 Swoole启动失败,提示什么proc_open函数不存在那就是你没听我的话,没去禁用函数里删它。或者,连接不上,提示502错误,那就是反向代理配置错了或者防火墙没开。还有,Redis连接失败,那就是Redis没启动,或者密码不对。

踩雷了。 遇到问题别慌,先看日志。日志在runtime/log目录下看看里面报什么错。大部分问题都是低级错误,比如目录权限不对,文件没上传完整之类的。实在不行,就去官方社区问问,别来问我,我也不是官方技术支持,我只是个搬运工。

说真的,搞这个玩意儿挺费精力的。特别是对于新手光是配置环境就能劝退一大半人。但是一旦你搞成功了那种成就感是花钱买不到的。看着自己的服务器上跑着自己亲手搭建的系统,心里那个美啊。而且, 以后跟人吹牛也有资本了“哎,我的客服系统是自己写的,基于Swoole的高性能系统”,多有面子,扯后腿。。

折腾永无止境

好了废话不多说了。这篇文章写得乱七八糟,希望能帮到大家。总的打造一个轻量级、自建的在线客服系统,并不是什么遥不可及的事情。只要有一台闲置的服务器,一点点Linux基础,再加上足够的耐心,你就能拥有一个属于自己的客服系统。

再说说提醒大家一句,服务器虽然便宜,但也别浪费。搭个客服系统只是第一步,以后还可以搭个博客,搭个私有网盘,甚至跑个游戏服务器。折腾嘛,就是乐趣。别让服务器在那儿吃灰,那是对人民币的不尊重。好了我要去喝口水了写这么多字,口都干了。大家有问题自己解决,解决不了就重装系统,重装系统能解决99%的问题。祝大家好运,折腾愉快!