搭建文档 - 快速开始
🎬 视频教程
📋 环境要求
服务器配置
| 服务 | 要求 | 推荐 |
|---|---|---|
| 操作系统 | Linux | Ubuntu 24.X |
| CPU | 4核 | 4核+ |
| 内存 | 8GB | 8GB+ |
| 磁盘 | 50GB+ | 100GB SSD |
| 带宽 | 5Mbps+ | 10Mbps+ |
软件环境
| 软件 | 要求 | 推荐 |
|---|---|---|
| Nginx | 1.20+ | 1.26+ |
| PHP | 7.4 | 7.4(必须) |
| MySQL | 5.7+ | 5.7.44 |
| Redis | 6.0+ | 7.2+ |
| Elasticsearch | 8.x | 8.x |
| Swoole | 4.x | 4.8+ |
第三方服务
| 服务 | 用途 | 申请地址 |
|---|---|---|
| Telegram Bot Token | 机器人功能 | @BotFather |
| TronGrid API Key | USDT 支付查询 | TronGrid |
| OpenAI API Key | AI 审核和关键词提取 | 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 ed8484bec1.3 在宝塔面板中安装软件
- 登录宝塔面板(http://your_server_ip:8888)
- 进入"软件商店"
- 安装以下软件:
- 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 上传项目文件
- 在宝塔面板中创建网站
- 上传 phpSearch 项目文件到网站根目录
- 设置目录权限(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 证书
- 在宝塔面板中申请 SSL 证书(Let's Encrypt 免费)
- 启用 HTTPS
- 配置强制 HTTPS
第三步:配置机器人
3.1 申请 Telegram Bot Token
- 在 Telegram 中找到 @BotFather
- 发送
/newbot创建新机器人 - 按照提示设置机器人名称和用户名
- 获取 Bot Token
3.2 申请支付机器人 Token
- 在 Telegram 中找到 @BotFather
- 发送
/newbot创建支付机器人 - 获取支付机器人 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 测试)
⚙️ 配置指南
数据库配置
在宝塔面板中创建数据库
- 登录宝塔面板
- 进入"数据库"菜单
- 点击"添加数据库"按钮
- 填写以下信息:
- 数据库名:phpsearch
- 用户名:phpsearch
- 密码:自定义强密码(建议使用复杂密码)
- 字符集:utf8mb4
- 点击"提交"创建数据库
在宝塔面板中导入数据
- 进入"数据库"菜单
- 找到刚创建的 phpsearch 数据库
- 点击"管理"按钮
- 进入 phpMyAdmin 界面
- 点击"导入"选项卡
- 选择 phpSearch.sql 文件
- 点击"执行"导入数据
提示:phpSearch.sql 文件应该在项目根目录下的 database 文件夹中
Redis 配置
Redis 已在宝塔面板中安装,默认配置即可使用,无需设置密码。
Elasticsearch 配置
Elasticsearch 已在宝塔面板中安装。需要修改配置文件以禁用安全认证:
修改 Elasticsearch 配置
- 在宝塔面板进入"软件商店"
- 找到已安装的 Elasticsearch
- 点击"配置修改"或进入配置文件编辑
- 找到
elasticsearch.yml文件 - 修改以下配置项为
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 目录下安装:
- 在宝塔面板中找到 Elasticsearch 的安装目录(通常为
/www/server/elasticsearch) - 进入 Elasticsearch 目录
- 执行以下命令安装 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)
- 安装完成后重启 Elasticsearch
TronGrid API 配置
申请 API Key
- 访问 TronGrid
- 注册账户
- 创建 API Key
- 复制 API Key
OpenAI API 配置
申请 API Key
- 访问 OpenAI
- 注册账户
- 创建 API Key
- 复制 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配置步骤:
- 登录宝塔面板
- 进入"计划任务"菜单
- 点击"添加任务"
- 选择"Shell 脚本"
- 输入命令和执行周期
- 点击"提交"保存
🎯 启动队列
使用进程守护管理器
1. 安装进程守护管理器
bash
# 在宝塔面板中安装 Supervisor
- 添加守护进程,名称随意,启动用户默认,运行目录为项目根目录
- 启动命令 php think queue:listen✅ 部署验证
检查清单
- [ ] 服务器环境已安装
- [ ] 项目文件已上传
- [ ] 数据库已导入
- [ ] 配置文件已修改
- [ ] Nginx 伪静态已配置
- [ ] SSL 证书已安装
- [ ] Telegram Bot Token 已获取
- [ ] 定时任务已添加
- [ ] 队列已启动
测试步骤
1. 测试网站访问
bash
curl https://yourdomain.com2. 测试机器人
- 在 Telegram 中找到你的机器人
- 发送
/start - 检查是否收到欢迎信息
3. 访问管理后台
- 访问 https://yourdomain.com/hDKsVnTZui.php
- 使用默认账号登录(admin / Qwe12345.)
- 修改管理员密码
🆘 常见问题
Q: 部署后无法访问网站
A: 检查以下几点:
- 域名 DNS 解析是否正确
- 防火墙是否开放 80 和 443 端口
- Nginx 是否正常运行
- 网站根目录权限是否正确
Q: 数据库导入失败
A: 检查以下几点:
- 数据库用户是否有足够权限
- 数据库字符集是否为 utf8mb4
- SQL 文件是否完整
- MySQL 版本是否满足要求
Q: Elasticsearch 无法连接
A: 检查以下几点:
- Elasticsearch 服务是否启动
- 防火墙是否开放 9200 端口
- Elasticsearch 配置是否正确
- 网络连接是否正常
Q: 机器人无法接收消息
A: 检查以下几点:
- Bot Token 是否正确
- Webhook URL 是否正确
- Webhook 是否已成功设置
- 服务器是否可以被 Telegram 服务器访问
� 需要帮助?程
如果部署过程中遇到问题,请联系技术支持:
- Telegram:@easSearchs
- 邮件:support@ylss.cc
- 官网:ylss.cc
