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

11 KiB
Raw Permalink Blame History

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. 安装宝塔面板

# 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. 修改以下关键配置项:
# 数据库配置(根据实际创建的数据库信息修改)
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. 执行以下命令进入项目目录:
cd /www/wwwroot/kamaxitong
  1. 安装项目依赖:
pip install -r requirements.txt

如果遇到网络问题,可以使用国内镜像源:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 初始化数据库

在项目根目录执行数据库初始化:

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. 在配置文本框中添加以下配置:

buffer-size=65536
callable=app
  1. 点击"域名管理"标签
  2. 添加域名:your-domain.com:5000(根据实际情况修改)
  3. 点击"外网映射"开关,确保处于开启状态

七、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处理
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";
}
  1. 点击"保存"应用配置

八、安全配置

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. 测试服务

在终端中执行以下命令测试服务是否正常:

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. 检查端口配置:

  3. 查看项目日志:

    • 在Python项目详情中点击"日志"标签
    • 查看是否有错误信息

2. 数据库连接失败

问题原因:数据库配置错误或权限不足

解决方案

  1. 检查数据库配置:

    • 确认.env文件中DATABASE_URL配置正确
    • 确认用户名、密码、数据库名无误
  2. 检查数据库权限:

    • 在宝塔面板"数据库"中检查用户权限
    • 确认用户可以从localhost访问数据库
  3. 测试数据库连接:

    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. 检查文件权限:

    chmod -R 755 /www/wwwroot/kamaxitong/static
    

4. 域名无法访问

问题原因DNS解析或防火墙问题

解决方案

  1. 检查DNS解析

    nslookup your-domain.com
    
  2. 检查防火墙设置:

    • 确认宝塔面板安全设置中放行了相应端口
    • 确认云服务器安全组放行了80和443端口

十二、维护管理

1. 日常维护

  1. 定期备份数据库:

    # 在宝塔面板"数据库"中点击备份按钮
    # 或使用命令行备份
    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命令查看进程资源占用