Kamixitong/docs/BT_PANEL_DEPLOYMENT.md

426 lines
11 KiB
Markdown
Raw Normal View History

2025-11-22 16:48:45 +08:00
# 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命令查看进程资源占用