• 日常搜索
  • 端口查询
  • IP查询
  • MD5解密
  • 搜本站

AIKE智能PHP在线客服系统安装教程

本AIKE智能PHP在线客服系统安装教程从零部署本系统所需的**环境要求**、**Web 安装向导**、**安装后必改配置文件**、**相关服务启动**及**验收检查**。演示地址:AIKE智能PHP在线客服系统

AIKE智能PHP在线客服系统安装教程  第1张

## 一、系统组成

  • 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**

AIKE智能PHP在线客服系统安装教程  第2张

### 2.2 PHP 扩展(安装向导会检测)

扩展名主要用途
mbstring多字节字符串
gd图片处理
curlHTTP 请求、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/HTTPS80 / 443网站访问
WebSocket(wport456访客端 / 客服端实时消息(aike_pusher 监听)
Pusher API(aport2080PHP 后端与推送服务通讯(建议仅本机或内网)
Qdrant HTTP6333向量检索(可选)
Qdrant gRPC6334向量检索(可选,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

AIKE智能PHP在线客服系统安装教程  第3张

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

### 3.4 安装成功:

AIKE智能PHP在线客服系统安装教程  第4张

### 3.5总后台

https://你的域名/platform/passport/login.html

账号:安装时创建

密码:安装创建

AIKE智能PHP在线客服系统安装教程  第5张

### 3.6 客服后台

总后台创建客服账号:

AIKE智能PHP在线客服系统安装教程  第6张

登陆客服后台:

https://你的域名/admin/login/index/business_id/1.html

AIKE智能PHP在线客服系统安装教程  第7张

## 四、Web 服务器配置

##Nginx配置

站点配置文件后面加上:

    access_log  /dev/null;
    error_log  /www/wwwlogs/ai.lw50.com.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智能PHP在线客服系统安装教程  第8张

### 实时推送 `aike_pusher`(必须)

cd /www/wwwroot/你的目录/aike_pusher

php start.php restart -d

AIKE智能PHP在线客服系统安装教程  第9张

常用指令:

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

### 前端验证

AIKE智能PHP在线客服系统安装教程  第10张

### 安装 Qdrant 向量数据库

启用知识库**语义检索 / 向量化**时需要。项目已提供**一键安装脚本**,请在**项目根目录**执行(与 `public/` 同级):

cd /www/wwwroot/你的目录
sudo bash install_qdrant.sh

> 若系统尚未安装 Docker,脚本会先自动安装 Docker,再部署 Qdrant;Docker 已就绪则直接进入 Qdrant 安装。

### 前置条件

  1. **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` 即表示就绪:

AIKE智能PHP在线客服系统安装教程  第11张

### 安装失败: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 rootsudo 后重试
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 -f
```
成功时终端会输出 `scanned` / `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:消息不实时?

  1. `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 不跑?

  1. `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?
  • 发表评论