AIKE智能PHP在线客服系统安装教程
- 一、系统组成
- 二、环境要求
- 三、部署教程
- 四、Web 服务器配置
- ========== ThinkPHP 5&nb
- 六、自动化说明
- 七、常见问题
- 五、服务启动说明
本AIKE智能PHP在线客服系统安装教程从零部署本系统所需的环境要求、Web 安装向导、安装后必改配置文件、相关服务启动及验收检查。演示地址:AIKE智能PHP在线客服系统

一、系统组成
PHP Web 应用:public/
为网站根目录实时推送服务:aike_pusher/(Workerman,WebSocket + HTTP API)
数据库结构:install/data.sql(安装向导自动导入)
向量检索(可选):知识库导入插件依赖 Qdrant;一键安装:
bash install_qdrant.sh
二、环境要求
2.1 服务器
操作系统:Linux(推荐)
- PHP:推荐 7.3+
- MySQL:5.6+,字符集 utf8mb4

2.2 PHP 扩展(安装向导会检测)
| 扩展名 | 主要用途 |
|---|---|
| mbstring | 多字节字符串 |
| gd | 图片处理 |
| curl | HTTP 请求、AI 接口 |
| pdo_mysql | 数据库 |
建议额外启用:json、openssl、fileinfo、zip。
2.3 目录写权限
以下目录需对 Web 运行用户可写:
config/
application/extra/
public/
public/upload/
runtime/
public/assets/front/
public/assets/layer/
2.4 端口规划
| 端口 | 默认值 | 说明 |
|---|---|---|
| HTTP/HTTPS | 80 / 443 | 网站访问 |
WebSocket(wport) | 456 | 访客端 / 客服端实时消息(aike_pusher 监听) |
Pusher API(aport) | 2080 | PHP 后端与推送服务通讯(建议仅本机或内网) |
| Qdrant HTTP | 6333 | 向量检索(可选) |
| Qdrant gRPC | 6334 | 向量检索(可选,SDK 直连时用) |
> HTTPS 站点:whost 建议填 wss://你的域名,由 Nginx 反代到本机 456;wport 填 443(对外)或 456(直连),须与 Nginx / 防火墙配置一致。
三、部署教程
3.1 上传代码
将项目上传到服务器,例如:
/www/wwwroot/your-domain.com/
网站根目录指向 public,不要将整个项目根目录直接暴露给外网。
3.2 创建数据库
宝塔创建数据库
安装向导也可自动创建数据库。
3.3 开始安装
- 若 public/index.php 已存在,安装向导会提示「已经安装成功」。
重新安装:https://你的域名/install.php

修改数据库参数和管理账号即可,其它不懂的建议默认。
3.4 安装成功:

3.5总后台
https://你的域名/platform/passport/login.html
账号:安装时创建
密码:安装时创建

3.6 客服后台
总后台创建客服账号:

登陆客服后台:
https://你的域名/admin/login/index/business_id/1.html

四、Web 服务器配置
### Nginx配置
站点配置文件后面加上:
access_log /dev/null;
error_log /www/wwwlogs/ai..error.log;
location /app {
proxy_pass http://127.0.0.1:456;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 3600s;
}若前端直连 ws://IP:456,需在安全组放行 456 端口。
### Linux伪静态
========== ThinkPHP 5 短期加固 + 原有静态规则 ==========
# 1. 禁止访问敏感目录(在原 runtime|application 基础上扩展)
location ~* ^/(runtime|application|config|thinkphp|vendor|extend)/ {
return 403;
}
# 2. 禁止访问示例/调试目录
location ~* ^/assets/libs/myeditor/examples/ {
return 403;
}
# 3. 禁止 uploads、assets 下直接执行 PHP
location ~* ^/upload/.*\.php$ {
return 403;
}
location ~* ^/assets/.*\.php$ {
return 403;
}
# 4. 拦截 ThinkPHP 5 常见 exploit 查询串
# 只拦截 s= 路由参数中的 exploit,勿扫描整段 query_string(会误伤 ?code= token)
if ($arg_s ~* "(invokefunction|call_user_func|call_user_func_array|pearcmd|config-create)") {
return 403;
}
if ($arg_s ~* "think(%2f|%5c|/)") {
return 403;
}
if ($arg_s ~* "(php://|phar://)") {
return 403;
}
if ($arg_s ~* "(\.\.|%2e%2e)") {
return 403;
}
# 5. 原有伪静态(保持不变)
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}五、服务启动说明
禁用函数
在宝塔:软件商店 → PHP 7.3 → 禁用函数,删掉与进程控制相关的项,至少包括:
pcntl_fork、pcntl_waitpid、pcntl_wait、pcntl_signal、pcntl_signal_dispatch、pcntl_alarm、pcntl_exec 以及列表里其它 pcntl_*
修改app_secrets.php
看图修改WSS、http、端口

实时推送 aike_pusher(必须)
cd /www/wwwroot/你的目录/aike_pusher php start.php restart -d

常用指令:
php start.php start # 前台调试
php start.php start -d # 后台守护
php start.php stop # 停止
php start.php reload # 平滑重启
php start.php status # 状态
进程守护
run.sh 每分钟检测 Workerman,未运行则启动:
cd /www/wwwroot/你的目录/ sudo bash run.sh
添加计划任务
cd /www/wwwroot/你的目录/ sudo bash init.sh
前端验证

安装 Qdrant 向量数据库
启用知识库语义检索 / 向量化时需要。项目已提供一键安装脚本,请在项目根目录执行(与 public/ 同级):
cd /www/wwwroot/你的目录 sudo bash install_qdrant.sh
> 若系统尚未安装 Docker,脚本会先自动安装 Docker,再部署 Qdrant;Docker 已就绪则直接进入 Qdrant 安装。
前置条件
Linux 服务器(脚本不支持 Windows 直接运行)
2. 未安装 Docker 时,脚本会自动安装并启动 Docker(需 root:sudo bash install_qdrant.sh)
3. 已安装且 Docker 服务正常时,跳过 Docker 步骤,直接安装 Qdrant
4. 本机可访问curl(健康检查用;安装 Docker 时脚本会尝试自动安装 curl)
安装后验证
bash scripts/qdrant/status.sh
或手动检查:
curl http://127.0.0.1:6333/ curl http://127.0.0.1:6333/readyz docker ps | grep wolive-qdrant
输出 Qdrant installed successfully 且 REST API 为 http://127.0.0.1:6333 即表示就绪:

安装失败:Docker iptables 问题
部分云服务器 / CentOS 会出现端口映射失败,脚本会自动尝试 host 网络模式。若仍失败,以 root 执行修复后重试:
bash
bash scripts/qdrant/fix_docker_iptables.sh
bash install_qdrant.sh
在系统中启用向量检索
确认 bash scripts/qdrant/status.sh 显示 Health : OK
1. 登录商户后台 → 知识库导入 / 向量设置:
- 开启 向量检索
- qdrant_url:http://127.0.0.1:6333
- 填写 Embedding API(URL、Key、模型)
2. 导入 FAQ 或页面后执行向量化
3. 在 AI 智能回复设置 中确认已启用知识库召回
Qdrant 常见问题
| 现象 | 处理 |
|---|---|
Docker not found | 使用 sudo bash install_qdrant.sh 以自动安装 Docker |
Docker auto-install requires root | 加 sudo 后重试 |
Docker daemon not running | 脚本会尝试 systemctl start docker;失败则手动检查 Docker 服务 |
| 健康检查超时 | docker logs wolive-qdrant,或执行 fix_docker_iptables.sh 后重装 |
| 向量化失败 | 检查后台 Embedding API Key,与 Qdrant 无关时先排除 API 问题 |
手动执行(调试)
bash
cd /www/wwwroot/your-domain.com
# 指定商户 business_id=1;-f 忽略后台「蒸馏开关=关」
php think ai:distill-human -b 1
php think ai:distill-human -b 1 -f
# 增量同步(页面 QA + 向量)
php think ai:auto-sync -b 1
php think ai:auto-sync -b 1 -fscanned
成功时终端会输出 / pairs / inserted 等统计。
后台开关(必配)
Cron 只负责按时触发;各商户是否在任务内真正执行,由后台 AI 智能回复设置 → 知识进化与定时任务 控制:
| 开关 | 建议 | 作用 |
|---|---|---|
| 人工聊天蒸馏 | 开 | 写入「AI进化池 → 人工聊天学习候选」 |
| 仅人工回复 | 开 | 排除 AI 自动回复与常见问题预设 |
| 定时增量同步 | 按需 | 从已同步页面抽 QA、维护向量 |
| 同步向量库 | 开(若已装 Qdrant) | FAQ 增量写入 Qdrant |
| 同步含蒸馏 | 关 | auto-sync 内再跑蒸馏(与 hourly 重复,一般关) |
阈值(质量分、出现次数、更新 FAQ 次数等)也在同一区块配置,保存后写入 wolive_ai_config.distill_config_json / auto_sync_json。
> 注意: 仅注册 cron、未在后台开启对应开关时,任务会跳过该商户。向量 FAQ 直答依赖 7.2 Qdrant 与后台 Embedding 配置。
六、自动化说明
“自动 vs 人工”环节:
| 环节 | 是否自动 |
|---|---|
| cron 扫描聊天、写候选 | ✅ |
| cron 页面 QA、向量同步 | ✅(需开开关) |
| 高质量新问题自动入 FAQ | ✅(进化池开关 + 阈值) |
| 同问不同答更新已有 FAQ | ❌ 需人工点「更新 FAQ」 |
| 意图关键词应用 | ❌ 需人工勾选并选意图 |
| 未命中 → 加 FAQ | ❌ 需人工确认 |
七、常见问题
Q1:SQL 导入失败?
检查 MySQL 版本、账号权限、install/data.sql 是否完整,查看安装页报错详情。
Q2:消息不实时?
php start.php status确认 pusher 运行
2.app_secrets.php中app_key/app_secret/aport/websocket_port正确(改完需重启 pusher)
3.whost、wport(对外)与websocket_port(监听,默认 456)与 Nginx / 防火墙一致
4. 浏览器控制台查看 WebSocket 连接
Q3:Missing application/extra/app_secrets.php?
重新安装,或从 app_secrets.example.php 复制并填写(含 websocket_port、aport)。
Q4:HTTPS 下 WebSocket 失败?
whost 用 wss://域名,Nginx /app 反代到 127.0.0.1:456,或配置 6.4 SSL 直连
Q5:向量检索无结果?
确认已执行 bash install_qdrant.sh 且 status.sh 正常,后台 qdrant_url 为 http://127.0.0.1:6333,Embedding API 可用并已执行向量化。
Q6:AI 进化 cron 不跑?
crontab -l是否含ai:distill-human、ai:auto-sync(无则sudo bash init.sh)
2. 后台 知识进化与定时任务 对应开关是否开启
3. 查看runtime/log/ai_distill_cron.log、ai_auto_sync.log是否有 PHP 报错
4. 手动php think ai:distill-human -b 商户ID -f验证 CLI 是否正常
Q7:蒸馏有候选但不会自动进 FAQ?
自动入库仅针对 FAQ 中尚不存在的新问题,且需同时满足:进化池开启 高质量自动入 FAQ、质量分 ≥ 阈值、出现次数 ≥ 阈值。同问不同答只会标「可更新 FAQ」,须人工确认。
END!!!
一、系统组成
二、环境要求
2.1 服务器
2.2 PHP 扩展(安装向导会检测)
2.3 目录写权限
2.4 端口规划
三、部署教程
3.1 上传代码
3.2 创建数据库
3.3 开始安装
3.4 安装成功:
3.5总后台
3.6 客服后台
四、Web 服务器配置
Nginx配置
Linux伪静态
五、服务启动说明
禁用函数
修改app_secrets.php
- 实时推送
aike_pusher(必须) 进程守护
添加计划任务
前端验证
安装 Qdrant 向量数据库
前置条件
安装后验证
安装失败:Docker iptables 问题
在系统中启用向量检索
Qdrant 常见问题
手动执行(调试)
后台开关(必配)
六、自动化说明
七、常见问题
Q1:SQL 导入失败?
Q2:消息不实时?
- Q3:
Missing application/extra/app_secrets.php? Q4:HTTPS 下 WebSocket 失败?
Q5:向量检索无结果?
Q6:AI 进化 cron 不跑?
Q7:蒸馏有候选但不会自动进 FAQ?