Skip to content

搭建文档 - 快速开始 ​

🎬 视频教程 ​

phpSearch 完整部署教程

📺 点击观看完整部署视频教程


📋 环境要求 ​

服务器配置 ​

服务要求推荐
操作系统LinuxUbuntu 24.X
CPU4核4核+
内存8GB8GB+
磁盘50GB+100GB SSD
带宽5Mbps+10Mbps+

软件环境 ​

软件要求推荐
Nginx1.20+1.26+
PHP7.47.4(必须)
MySQL5.7+5.7.44
Redis6.0+7.2+
Elasticsearch8.x8.x
Swoole4.x4.8+

第三方服务 ​

服务用途申请地址
Telegram Bot Token机器人功能@BotFather
TronGrid API KeyUSDT 支付查询TronGrid
OpenAI API KeyAI 审核和关键词提取OpenAI

🚀 三步快速部署 ​

第一步:准备服务器 ​

1.1 购买服务器 ​

  • 推荐使用国外云服务商(AWS、DigitalOcean、Linode 等)
  • 选择 Ubuntu 24.X 系统
  • 配置:4核8G,100GB SSD

1.2 安装宝塔面板 ​

bash
# 连接到服务器
ssh root@your_server_ip

# 安装宝塔面板(官方推荐)
wget -O install.sh http://download.bt.cn/install/install_lts.sh && bash install.sh ed8484bec

1.3 在宝塔面板中安装软件 ​

  1. 登录宝塔面板(http://your_server_ip:8888)
  2. 进入"软件商店"
  3. 安装以下软件:
    • Nginx 1.26+
    • PHP 7.4
    • MySQL 5.7.44
    • Redis 7.2+
    • Elasticsearch 8.x

1.4 安装 Swoole 扩展 ​

在 php.ini 中添加以下配置:

ini
extension = 网站运行目录下的/extend/swoole_loader74_nts.so

然后重启 PHP-FPM:

bash
sudo systemctl restart php-fpm

第二步:部署项目 ​

2.1 上传项目文件 ​

  1. 在宝塔面板中创建网站
  2. 上传 phpSearch 项目文件到网站根目录
  3. 设置目录权限(755)

2.2 配置数据库 ​

bash
# 1. 在宝塔面板中创建数据库
# 数据库名:phpsearch
# 用户名:phpsearch
# 密码:自定义强密码

# 2. 导入数据库文件
# 在宝塔面板中导入 phpSearch.sql 文件

2.3 配置项目参数 ​

编辑根目录下的 .env 文件,修改以下配置项:

ini
[app]
debug = false
trace = false

[database]
hostname = 127.0.0.1
database = your_database_name
username = your_username
password = your_password
hostport = 3306
prefix = fa_

[demo]
isdemo = false
groups = -1002668998579

[jwt]
key = your_jwt_key

配置说明:

  • debug = false:关闭调试模式(生产环境必须关闭)
  • trace = false:关闭跟踪模式(生产环境必须关闭)
  • database:修改为你的数据库信息
  • isdemo = false:关闭演示模式
  • jwt.key:修改为你的 JWT 密钥

2.4 配置 Nginx 伪静态 ​

在宝塔面板中设置伪静态规则:

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

2.5 配置 SSL 证书 ​

  1. 在宝塔面板中申请 SSL 证书(Let's Encrypt 免费)
  2. 启用 HTTPS
  3. 配置强制 HTTPS

第三步:配置机器人 ​

3.1 申请 Telegram Bot Token ​

  1. 在 Telegram 中找到 @BotFather
  2. 发送 /newbot 创建新机器人
  3. 按照提示设置机器人名称和用户名
  4. 获取 Bot Token

3.2 申请支付机器人 Token ​

  1. 在 Telegram 中找到 @BotFather
  2. 发送 /newbot 创建支付机器人
  3. 获取支付机器人 Token

3.3 配置 Webhook ​

无需手动配置 Webhook,系统会在后台保存 Bot Token 后自动配置。只需在后台管理系统中填入 Bot Token 即可。

3.4 设置机器人命令 ​

在 Telegram 中找到 @BotFather,选择你的机器人,发送 /setcommands 添加以下命令:

my - 我的
getinfo - 获取群组数据统计
getadv - 获取广告数据统计
help - 帮助命令
start - 开始命令
quit - 退出输入模式
update - 收录或更新群组
hotkey - 旧版本查询关键词
buy - 新版本查询关键词

命令说明:

  • /start - 启动机器人
  • /my - 查看我的信息
  • /getinfo - 获取群组数据统计
  • /getadv - 获取广告数据统计
  • /help - 获取帮助信息
  • /quit - 退出当前输入模式
  • /update - 在群组中设置管理员后发送,第一次代表收录群组,第二次代表更新群组
  • /hotkey <关键词> - 旧版本查询关键词(例:/hotkey 测试)
  • /buy <关键词> - 新版本查询关键词(例:/buy 测试)

⚙️ 配置指南 ​

数据库配置 ​

在宝塔面板中创建数据库 ​

  1. 登录宝塔面板
  2. 进入"数据库"菜单
  3. 点击"添加数据库"按钮
  4. 填写以下信息:
    • 数据库名:phpsearch
    • 用户名:phpsearch
    • 密码:自定义强密码(建议使用复杂密码)
    • 字符集:utf8mb4
  5. 点击"提交"创建数据库

在宝塔面板中导入数据 ​

  1. 进入"数据库"菜单
  2. 找到刚创建的 phpsearch 数据库
  3. 点击"管理"按钮
  4. 进入 phpMyAdmin 界面
  5. 点击"导入"选项卡
  6. 选择 phpSearch.sql 文件
  7. 点击"执行"导入数据

提示:phpSearch.sql 文件应该在项目根目录下的 database 文件夹中

Redis 配置 ​

Redis 已在宝塔面板中安装,默认配置即可使用,无需设置密码。

Elasticsearch 配置 ​

Elasticsearch 已在宝塔面板中安装。需要修改配置文件以禁用安全认证:

修改 Elasticsearch 配置 ​

  1. 在宝塔面板进入"软件商店"
  2. 找到已安装的 Elasticsearch
  3. 点击"配置修改"或进入配置文件编辑
  4. 找到 elasticsearch.yml 文件
  5. 修改以下配置项为 false:
yaml
xpack.security.enabled: false
xpack.security.enrollment.enabled: false

# Enable encryption for HTTP API client connections
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: false
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12

安装 IK 分词器 ​

IK 分词器是中文分词必需的插件,需要在 Elasticsearch 目录下安装:

  1. 在宝塔面板中找到 Elasticsearch 的安装目录(通常为 /www/server/elasticsearch)
  2. 进入 Elasticsearch 目录
  3. 执行以下命令安装 IK 分词器:
bash
cd /www/server/elasticsearch
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.x.x/elasticsearch-analysis-ik-8.x.x.zip

注意:将 8.x.x 替换为你安装的 Elasticsearch 版本号(例如 8.10.0)

  1. 安装完成后重启 Elasticsearch

TronGrid API 配置 ​

申请 API Key ​

  1. 访问 TronGrid
  2. 注册账户
  3. 创建 API Key
  4. 复制 API Key

OpenAI API 配置 ​

申请 API Key ​

  1. 访问 OpenAI
  2. 注册账户
  3. 创建 API Key
  4. 复制 API Key

🔄 定时任务配置 ​

在宝塔面板中添加定时任务 ​

系统提供了多个定时任务命令。在宝塔面板中添加定时任务时,使用以下命令:

bash
# 基础语法
php /www/wwwroot/your_path/think 命令名称

可用的定时任务命令:

  • sync:elasticsearch - Elasticsearch 数据同步
  • clean:emoji-groups - 清理表情符号群组
  • clean:keyword - 清理关键词
  • clean:redis-cache - 清理 Redis 缓存
  • deduplicate:groups - 去重群组
  • deduplicate:groups-simple - 简单去重群组
  • elasticsearch:backup - Elasticsearch 备份
  • keyword:available - 关键词可用性检查
  • migrate:search-logs - 迁移搜索日志
  • migration - 数据迁移
  • promote:bot-in-groups - 在群组中推广机器人
  • score:system - 评分系统
  • score:system-optimized - 优化评分系统
  • super:amount - 超级金额处理
  • tasks:group-msg - 群组消息任务
  • tasks:group-top - 群组置顶任务

示例:

bash
# 每5分钟执行一次 Elasticsearch 数据同步
*/5 * * * * php /www/wwwroot/your_path/think sync:elasticsearch

# 每天凌晨2点清理 Redis 缓存
0 2 * * * php /www/wwwroot/your_path/think clean:redis-cache

# 每小时执行一次去重群组
0 * * * * php /www/wwwroot/your_path/think deduplicate:groups

配置步骤:

  1. 登录宝塔面板
  2. 进入"计划任务"菜单
  3. 点击"添加任务"
  4. 选择"Shell 脚本"
  5. 输入命令和执行周期
  6. 点击"提交"保存

🎯 启动队列 ​

使用进程守护管理器 ​

1. 安装进程守护管理器 ​

bash
# 在宝塔面板中安装 Supervisor
- 添加守护进程,名称随意,启动用户默认,运行目录为项目根目录
- 启动命令 php think queue:listen

✅ 部署验证 ​

检查清单 ​

  • [ ] 服务器环境已安装
  • [ ] 项目文件已上传
  • [ ] 数据库已导入
  • [ ] 配置文件已修改
  • [ ] Nginx 伪静态已配置
  • [ ] SSL 证书已安装
  • [ ] Telegram Bot Token 已获取
  • [ ] 定时任务已添加
  • [ ] 队列已启动

测试步骤 ​

1. 测试网站访问 ​

bash
curl https://yourdomain.com

2. 测试机器人 ​

  1. 在 Telegram 中找到你的机器人
  2. 发送 /start
  3. 检查是否收到欢迎信息

3. 访问管理后台 ​

  1. 访问 https://yourdomain.com/hDKsVnTZui.php
  2. 使用默认账号登录(admin / Qwe12345.)
  3. 修改管理员密码

🆘 常见问题 ​

Q: 部署后无法访问网站 ​

A: 检查以下几点:

  1. 域名 DNS 解析是否正确
  2. 防火墙是否开放 80 和 443 端口
  3. Nginx 是否正常运行
  4. 网站根目录权限是否正确

Q: 数据库导入失败 ​

A: 检查以下几点:

  1. 数据库用户是否有足够权限
  2. 数据库字符集是否为 utf8mb4
  3. SQL 文件是否完整
  4. MySQL 版本是否满足要求

Q: Elasticsearch 无法连接 ​

A: 检查以下几点:

  1. Elasticsearch 服务是否启动
  2. 防火墙是否开放 9200 端口
  3. Elasticsearch 配置是否正确
  4. 网络连接是否正常

Q: 机器人无法接收消息 ​

A: 检查以下几点:

  1. Bot Token 是否正确
  2. Webhook URL 是否正确
  3. Webhook 是否已成功设置
  4. 服务器是否可以被 Telegram 服务器访问

� 需要帮助?程 ​

如果部署过程中遇到问题,请联系技术支持: