Kamixitong/docs/BT_PANEL_DEPLOYMENT.md
2025-11-22 16:48:45 +08:00

426 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# KaMiXiTong系统宝塔面板部署完整文档
## 一、准备工作
### 1. 环境要求
- 服务器Linux系统推荐CentOS 7.x或Ubuntu 18.04以上)
- 宝塔面板7.0以上版本
- Python版本3.7以上
- MySQL版本5.7或8.0
### 2. 本地准备
1. 确保项目代码完整,包含以下关键文件:
- `.env` 配置文件
- `requirements.txt` 依赖文件
- `kamaxitong_nginx.conf` Nginx配置文件
- 数据库初始化脚本 `init_mysql.sql`
2. 将项目代码打包为zip文件便于上传
## 二、宝塔面板基础环境配置
### 1. 安装宝塔面板
```bash
# CentOS系统安装命令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
# Ubuntu/Debian系统安装命令
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
```
安装完成后,会显示面板地址、用户名和密码,请妥善保存。
### 2. 安装必要软件
登录宝塔面板后,安装以下软件:
1. Nginx推荐1.18或以上版本)
2. MySQL推荐5.7或8.0版本)
3. Python项目管理器
安装步骤:
1. 点击左侧菜单"软件商店"
2. 搜索相应软件并点击安装
3. 保持默认配置,点击"一键安装"
## 三、服务器环境配置
### 1. 创建网站目录
1. 在宝塔面板中点击左侧菜单"文件"
2. 进入目录`/www/wwwroot`
3. 点击"新建目录",输入目录名`kamaxitong`
4. 点击"确定"完成创建
### 2. 上传项目文件
1. 在`/www/wwwroot/kamaxitong`目录下点击"上传"
2. 选择本地打包好的项目zip文件
3. 上传完成后点击文件名,在右侧操作栏点击"解压"
4. 解压到当前目录
### 3. 安装Python环境
1. 在宝塔面板中点击左侧菜单"软件商店"
2. 搜索"Python项目管理器"并安装
3. 安装完成后点击"设置"
4. 在Python版本管理中安装Python 3.7或更高版本
## 四、数据库配置
### 1. 创建数据库
1. 在宝塔面板中点击左侧菜单"数据库"
2. 点击"添加数据库"
3. 填写以下信息:
- 数据库名:`kamaxitong`
- 用户名:`kamaxitong`(可自定义)
- 密码:设置复杂密码并妥善保存
- 访问权限本地服务器localhost
4. 点击"提交"完成创建
### 2. 导入数据库结构
1. 在数据库列表中找到`kamaxitong`数据库
2. 点击"导入"按钮
3. 点击"从本地上传",选择项目中的`init_mysql.sql`文件
4. 点击"开始上传"
5. 上传完成后点击"执行"导入数据库结构
## 五、项目配置
### 1. 配置环境变量
1. 在宝塔面板中点击左侧菜单"文件"
2. 进入目录`/www/wwwroot/kamaxitong`
3. 找到`.env`文件并点击编辑
4. 修改以下关键配置项:
```bash
# 数据库配置(根据实际创建的数据库信息修改)
DATABASE_URL=mysql+pymysql://kamaxitong:您设置的密码@localhost:3306/kamaxitong
# Flask环境
FLASK_ENV=production
FLASK_DEBUG=False
# 安全配置(请修改为复杂密码)
SECRET_KEY=your-complex-secret-key-here
AUTH_SECRET_KEY=your-auth-validator-secret-key
# 域名配置(根据实际情况修改)
FRONTEND_DOMAIN=http://your-domain.com
# 服务器配置
HOST=127.0.0.1
PORT=5000
# 日志配置
LOG_LEVEL=INFO
LOG_FILE=logs/kamaxitong.log
```
### 2. 安装Python依赖
1. 在宝塔面板中点击左侧菜单"终端"
2. 执行以下命令进入项目目录:
```bash
cd /www/wwwroot/kamaxitong
```
3. 安装项目依赖:
```bash
pip install -r requirements.txt
```
如果遇到网络问题,可以使用国内镜像源:
```bash
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
### 3. 初始化数据库
在项目根目录执行数据库初始化:
```bash
python -c "
import os
os.environ['FLASK_ENV'] = 'production'
from app import create_app, db
app = create_app()
with app.app_context():
db.create_all()
print('数据库表创建完成')
"
```
## 六、配置Python项目
### 1. 添加Python项目
1. 在宝塔面板中点击左侧菜单"网站"
2. 选择顶部标签"Python项目"
3. 点击"添加项目"
4. 填写以下信息:
- 项目路径:`/www/wwwroot/kamaxitong`
- 项目名称:`kamaxitong`
- 运行文件:`run.py`
- 项目端口:`5000`
- Python版本选择已安装的Python版本如Python 3.7
- 框架Flask
- 运行方式Gunicorn
- 进程数2可根据服务器配置调整
- 线程数4
- 启动用户www
- 通信方式Http
- 安装依赖包勾选自动检测requirements.txt
5. 点击"提交"完成项目创建
### 2. 配置项目参数
1. 在Python项目列表中找到刚创建的项目
2. 点击项目名称进入项目详情
3. 点击"配置文件"标签
4. 修改以下配置:
- server_name填写您的域名或服务器IP
- root填写项目根路径`/www/wwwroot/kamaxitong`
5. 点击"运行配置"标签
6. 在配置文本框中添加以下配置:
```ini
buffer-size=65536
callable=app
```
7. 点击"域名管理"标签
8. 添加域名:`your-domain.com:5000`(根据实际情况修改)
9. 点击"外网映射"开关,确保处于开启状态
## 七、Nginx配置
### 1. 创建网站
1. 在宝塔面板中点击左侧菜单"网站"
2. 点击"添加站点"
3. 填写以下信息:
- 域名填写您的域名如km.yourdomain.com
- 备注KaMiXiTong系统
- 根目录:`/www/wwwroot/kamaxitong`
- FTP不创建
- 数据库:不创建
- 程序类型PHP暂时选择后续会修改
4. 点击"提交"完成站点创建
### 2. 配置反向代理
1. 在网站列表中找到刚创建的站点
2. 点击站点名称进入站点设置
3. 点击"反向代理"选项卡
4. 点击"添加反向代理"
5. 填写以下信息:
- 代理名称kamaxitong
- 目标URLhttp://127.0.0.1:5000
- 发送域名:$host
- 内容替换:不启用
6. 点击"提交"完成反向代理配置
### 3. 配置静态文件
1. 在站点设置中点击"配置文件"选项卡
2. 在server块中添加静态文件处理配置
```nginx
# 静态文件直接由Nginx处理
location /static/ {
alias /www/wwwroot/kamaxitong/static/;
expires 1y;
add_header Cache-Control "public, immutable";
add_header Access-Control-Allow-Origin "*";
}
# 上传文件处理
location /static/uploads/ {
alias /www/wwwroot/kamaxitong/static/uploads/;
expires 1d;
add_header Cache-Control "public";
}
```
3. 点击"保存"应用配置
## 八、安全配置
### 1. 放行端口
1. 在宝塔面板中点击左侧菜单"安全"
2. 点击"防火墙"选项卡
3. 点击"放行端口"
4. 添加以下端口:
- 端口5000
- 备注KaMiXiTong应用端口
- 授权IP默认允许所有IP
5. 点击"保存"
### 2. 服务器安全组
在云服务器控制台的安全组中放行以下端口:
- 80 (HTTP)
- 443 (HTTPS)
- 5000 (应用端口)
- 22 (SSH如果需要)
配置步骤(以阿里云为例):
1. 登录云服务器控制台
2. 找到安全组管理
3. 选择对应实例的安全组
4. 点击"配置规则"
5. 点击"添加安全组规则"
6. 添加规则:
- 授权策略:允许
- 协议类型TCP
- 端口范围80/80
- 授权对象0.0.0.0/0
重复以上步骤添加443和5000端口。
## 九、启动服务
### 1. 启动Python项目
1. 在宝塔面板中点击左侧菜单"网站"
2. 选择顶部标签"Python项目"
3. 找到kamaxitong项目
4. 点击右侧"启动"按钮
等待项目启动完成,状态显示为"运行中"。
### 2. 重启Nginx
1. 在宝塔面板中点击左侧菜单"软件商店"
2. 找到Nginx服务
3. 点击"重启"按钮
### 3. 测试服务
在终端中执行以下命令测试服务是否正常:
```bash
curl -I http://localhost:5000
```
应该返回200状态码表示服务正常运行。
## 十、验证部署
### 1. 访问测试
通过浏览器访问您的域名:
1. 打开浏览器输入您的域名如http://km.yourdomain.com
2. 检查以下内容:
- 网站首页正常显示
- 页面样式和图片正常加载
- 导航链接可正常点击
### 2. 管理后台测试
1. 访问管理后台登录页面http://km.yourdomain.com/admin
2. 使用默认账号登录:
- 用户名admin
- 密码admin123
3. 检查登录是否成功
### 3. API接口测试
1. 访问API文档页面http://km.yourdomain.com/docs
2. 测试几个关键API接口
- 产品列表接口
- 卡密验证接口
## 十一、常见问题及解决方案
### 1. 502 Bad Gateway错误
**问题原因**Python项目未正常启动或端口配置错误
**解决方案**
1. 检查Python项目状态
- 在宝塔面板"网站"->"Python项目"中查看项目状态
- 如果未启动,点击"启动"按钮
2. 检查端口配置:
- 确认项目配置中的端口为5000
- 确认Nginx反向代理目标URL为http://127.0.0.1:5000
3. 查看项目日志:
- 在Python项目详情中点击"日志"标签
- 查看是否有错误信息
### 2. 数据库连接失败
**问题原因**:数据库配置错误或权限不足
**解决方案**
1. 检查数据库配置:
- 确认.env文件中DATABASE_URL配置正确
- 确认用户名、密码、数据库名无误
2. 检查数据库权限:
- 在宝塔面板"数据库"中检查用户权限
- 确认用户可以从localhost访问数据库
3. 测试数据库连接:
```bash
cd /www/wwwroot/kamaxitong
python -c "
import os
os.environ['FLASK_ENV'] = 'production'
from app import create_app, db
app = create_app()
with app.app_context():
try:
db.engine.execute('SELECT 1')
print('数据库连接成功')
except Exception as e:
print(f'数据库连接失败: {e}')
"
```
### 3. 静态文件无法访问
**问题原因**Nginx静态文件配置错误
**解决方案**
1. 检查Nginx配置
- 确认location /static/配置正确
- 确认路径指向正确的static目录
2. 检查文件权限:
```bash
chmod -R 755 /www/wwwroot/kamaxitong/static
```
### 4. 域名无法访问
**问题原因**DNS解析或防火墙问题
**解决方案**
1. 检查DNS解析
```bash
nslookup your-domain.com
```
2. 检查防火墙设置:
- 确认宝塔面板安全设置中放行了相应端口
- 确认云服务器安全组放行了80和443端口
## 十二、维护管理
### 1. 日常维护
1. 定期备份数据库:
```bash
# 在宝塔面板"数据库"中点击备份按钮
# 或使用命令行备份
mysqldump -u kamaxitong -p kamaxitong > /backup/kamaxitong_$(date +%Y%m%d).sql
```
2. 监控系统日志:
- 定期查看Python项目日志
- 查看Nginx访问日志和错误日志
3. 更新安全补丁:
- 定期更新系统安全补丁
- 更新Python依赖包
### 2. 性能优化
1. 根据访问量调整Gunicorn工作进程数
- 在Python项目配置中调整进程数
- 一般设置为CPU核心数的1-2倍
2. 配置Redis缓存如需要
- 在宝塔面板中安装Redis
- 修改项目配置启用缓存
### 3. 故障排查
1. 查看Python项目日志
- 在宝塔面板Python项目详情中查看日志
- 或查看logs目录下的日志文件
2. 检查Nginx错误日志
- 在宝塔面板"网站"->站点设置->日志中查看
3. 检查系统资源使用情况:
- 在宝塔面板首页查看CPU、内存、磁盘使用情况
- 使用top或htop命令查看进程资源占用