亲测一份PHP在线客服系统源码,thinkphp+workerman开发,网上流传最广的客服源码搭建教程

2023-04-15

亲测一份PHP在线客服系统源码,thinkphp+workerman开发,网上流传最广的客服源码搭建教程

演示网站:gofly.v1kf.com
我的微信:llike620
我的微信

为了帮一个客户修改自己的客服系统,所以把源码在本地搭建了一下。这份源码已经不知道是几手的了,并且很有可能会有后门,或者代码已被网警标识。为什么这么说呢?曾经有个客户提到过,刚部署一个在网上下载的php客服系统后,就会被反诈110打电话。所以,敢用的尽管去网上下载吧,哈哈。


本来不愿意看这种盗版破解的PHP客服源码。但是客户那边需求很少,购买我的商务版感觉不合算,所以网上找了这一个客服源码,这个也是流传最广的一款PHP客服系统。当然这个源码有没有后门漏洞,就需要仔细看代码了,一般情况下可能会有BUG以及后门的,请谨慎参考。


我本地环境windows10 ,PHP的代码需要在php-fpm下运行,websocket服务端需要命令行执行。先提前安装好集成环境,比如phpstudy,方便一点。

首先把代码放到一个目录里

    到数据库管理面板,先创建好一个数据库,比如:phpkefu。访问phpmyadmin,把根目录的kefu.sql 导入进去

    配置后台的数据库连接信息 config/database.php


<?php
// +———————————————————————-
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +———————————————————————-
// | Copyright © 2006~2018 http://thinkphp.cn All rights reserved.
// +———————————————————————-
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +———————————————————————-
// | Author: liu21st <服务器购买去wyyidc.cn>
// +———————————————————————-

return [     // 数据库类型     &#39;type&#39;            => &#39;mysql&#39;,     // 服务器地址     &#39;hostname&#39;        => &#39;127.0.0.1&#39;,     // 数据库名     &#39;database&#39;        => &#39;phpkefu&#39;,     // 用户名     &#39;username&#39;        => &#39;phpkefu&#39;,     // 密码     &#39;password&#39;        => &#39;phpkefu&#39;,     // 端口     &#39;hostport&#39;        => &#39;3306&#39;,     // 连接dsn     &#39;dsn&#39;             => &#39;&#39;,     // 数据库连接参数     &#39;params&#39;          => [],     // 数据库编码默认采用utf8     &#39;charset&#39;         => &#39;utf8&#39;,     // 数据库表前缀     &#39;prefix&#39;          => &#39;v2_&#39;,     // 数据库调试模式     &#39;debug&#39;           => true,     // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)     &#39;deploy&#39;          => 0,     // 数据库读写是否分离 主从式有效     &#39;rw_separate&#39;     => false,     // 读写分离后 主服务器数量     &#39;master_num&#39;      => 1,     // 指定从服务器序号     &#39;slave_no&#39;        => &#39;&#39;,     // 自动读取主库数据     &#39;read_master&#39;     => false,     // 是否严格检查字段是否存在     &#39;fields_strict&#39;   => true,     // 数据集返回类型     &#39;resultset_type&#39;  => &#39;array&#39;,     // 自动写入时间戳字段     &#39;auto_timestamp&#39;  => false,     // 时间字段取出后的默认时间格式     &#39;datetime_format&#39; => &#39;Y-m-d H:i:s&#39;,     // 是否需要进行SQL性能分析     &#39;sql_explain&#39;     => false,     // Builder类     &#39;builder&#39;         => &#39;&#39;,     // Query类     &#39;query&#39;           => &#39;\think\db\Query&#39;,     // 是否需要断线重连     &#39;break_reconnect&#39; => true,     // 断线标识字符串     &#39;break_match_str&#39; => [], ];


    配置workerman websocket服务端的数据库连接信息 websocket/config.php


<?php

return [

    // websocket 对外服务端口     &#39;ws_port&#39; => 2020,

    // http api 服务对外端口     &#39;api_port&#39; => 2945,

    // gateway worker number     &#39;gateway_worker&#39; => 2,

    // business worker number     &#39;business_worker&#39; => 2,

    // 是否开启客服只允许单点登录 0 不开启 1 开启,     // 切换需要重启     &#39;single_login&#39; => 1,

    // 是否开启 ssl     &#39;is_open_ssl&#39; => true,

    &#39;context&#39; => [         &#39;ssl&#39; => [             // 请使用绝对路径             &#39;local_cert&#39;  => &#39;fullchain.pem&#39;, // 也可以是crt文件             &#39;local_pk&#39;  => &#39;privkey.pem&#39;,             &#39;verify_peer&#39;   => false,             &#39;allow_self_signed&#39; => true,// 是否允许自签名证书         ]     ],

    &#39;database&#39; => [         &#39;host&#39;        => &#39;127.0.0.1&#39;,         &#39;user&#39;        => &#39;phpkefu&#39;,         &#39;password&#39;    => &#39;phpkefu&#39;,         &#39;database&#39;    => &#39;phpkefu&#39;,         &#39;port&#39;        => &#39;3306&#39;,         &#39;charset&#39;     => &#39;utf8&#39;,     ] ];


    配置nginx的虚拟主机,把根目录定位在  public目录 下

    然后增加伪静态配置


 if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php?s=$1 last;
             break;
     }


    这样就能访问后台了

    http://域名/admin

   配置项目

    账户是admin,如果密码忘记了怎么办。可以直接修改数据库表v2_admin ,密码规则是md5(密码+ 加密盐) , 加密盐可以在config/service.php中看到

    在这个配置里还要看看,webscoket的配置,注意区分是ws还是wss

    还有一个配置文件是service_socketio.php  ,这里面也有一些域名,websocket的配置信息

   启动websocket服务

    双击执行websocket目录下的start_for_win.bat

    还有注意看看这个目录下的config.php  ,如果不支持wss ,需要改 &#39;is_open_ssl&#39; => false , 如果需要支持wss,需要配置证书文件的地址

   整体访问流程

    整体项目就搭建起来了,需要我们先登录客服后台 /admin  去增加配置商户

    再登录商户后台 /seller去增加配置坐席 ,获取访客聊天连接

    再登录客服后台  ,去接待具体客户