11 KiB
KaMiXiTong系统宝塔面板部署完整文档
一、准备工作
1. 环境要求
- 服务器:Linux系统(推荐CentOS 7.x或Ubuntu 18.04以上)
- 宝塔面板:7.0以上版本
- Python版本:3.7以上
- MySQL版本:5.7或8.0
2. 本地准备
-
确保项目代码完整,包含以下关键文件:
.env配置文件requirements.txt依赖文件kamaxitong_nginx.confNginx配置文件- 数据库初始化脚本
init_mysql.sql
-
将项目代码打包为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. 安装必要软件
登录宝塔面板后,安装以下软件:
- Nginx(推荐1.18或以上版本)
- MySQL(推荐5.7或8.0版本)
- Python项目管理器
安装步骤:
- 点击左侧菜单"软件商店"
- 搜索相应软件并点击安装
- 保持默认配置,点击"一键安装"
三、服务器环境配置
1. 创建网站目录
- 在宝塔面板中点击左侧菜单"文件"
- 进入目录
/www/wwwroot - 点击"新建目录",输入目录名
kamaxitong - 点击"确定"完成创建
2. 上传项目文件
- 在
/www/wwwroot/kamaxitong目录下点击"上传" - 选择本地打包好的项目zip文件
- 上传完成后点击文件名,在右侧操作栏点击"解压"
- 解压到当前目录
3. 安装Python环境
- 在宝塔面板中点击左侧菜单"软件商店"
- 搜索"Python项目管理器"并安装
- 安装完成后点击"设置"
- 在Python版本管理中安装Python 3.7或更高版本
四、数据库配置
1. 创建数据库
- 在宝塔面板中点击左侧菜单"数据库"
- 点击"添加数据库"
- 填写以下信息:
- 数据库名:
kamaxitong - 用户名:
kamaxitong(可自定义) - 密码:设置复杂密码并妥善保存
- 访问权限:本地服务器(localhost)
- 数据库名:
- 点击"提交"完成创建
2. 导入数据库结构
- 在数据库列表中找到
kamaxitong数据库 - 点击"导入"按钮
- 点击"从本地上传",选择项目中的
init_mysql.sql文件 - 点击"开始上传"
- 上传完成后点击"执行"导入数据库结构
五、项目配置
1. 配置环境变量
- 在宝塔面板中点击左侧菜单"文件"
- 进入目录
/www/wwwroot/kamaxitong - 找到
.env文件并点击编辑 - 修改以下关键配置项:
# 数据库配置(根据实际创建的数据库信息修改)
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依赖
- 在宝塔面板中点击左侧菜单"终端"
- 执行以下命令进入项目目录:
cd /www/wwwroot/kamaxitong
- 安装项目依赖:
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项目
-
在宝塔面板中点击左侧菜单"网站"
-
选择顶部标签"Python项目"
-
点击"添加项目"
-
填写以下信息:
- 项目路径:
/www/wwwroot/kamaxitong - 项目名称:
kamaxitong - 运行文件:
run.py - 项目端口:
5000 - Python版本:选择已安装的Python版本(如Python 3.7)
- 框架:Flask
- 运行方式:Gunicorn
- 进程数:2(可根据服务器配置调整)
- 线程数:4
- 启动用户:www
- 通信方式:Http
- 安装依赖包:勾选(自动检测requirements.txt)
- 项目路径:
-
点击"提交"完成项目创建
2. 配置项目参数
-
在Python项目列表中找到刚创建的项目
-
点击项目名称进入项目详情
-
点击"配置文件"标签
-
修改以下配置:
- server_name:填写您的域名或服务器IP
- root:填写项目根路径
/www/wwwroot/kamaxitong
-
点击"运行配置"标签
-
在配置文本框中添加以下配置:
buffer-size=65536
callable=app
- 点击"域名管理"标签
- 添加域名:
your-domain.com:5000(根据实际情况修改) - 点击"外网映射"开关,确保处于开启状态
七、Nginx配置
1. 创建网站
-
在宝塔面板中点击左侧菜单"网站"
-
点击"添加站点"
-
填写以下信息:
- 域名:填写您的域名(如km.yourdomain.com)
- 备注:KaMiXiTong系统
- 根目录:
/www/wwwroot/kamaxitong - FTP:不创建
- 数据库:不创建
- 程序类型:PHP(暂时选择,后续会修改)
-
点击"提交"完成站点创建
2. 配置反向代理
-
在网站列表中找到刚创建的站点
-
点击站点名称进入站点设置
-
点击"反向代理"选项卡
-
点击"添加反向代理"
-
填写以下信息:
- 代理名称:kamaxitong
- 目标URL:http://127.0.0.1:5000
- 发送域名:$host
- 内容替换:不启用
-
点击"提交"完成反向代理配置
3. 配置静态文件
- 在站点设置中点击"配置文件"选项卡
- 在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. 放行端口
-
在宝塔面板中点击左侧菜单"安全"
-
点击"防火墙"选项卡
-
点击"放行端口"
-
添加以下端口:
- 端口:5000
- 备注:KaMiXiTong应用端口
- 授权IP:默认(允许所有IP)
-
点击"保存"
2. 服务器安全组
在云服务器控制台的安全组中放行以下端口:
- 80 (HTTP)
- 443 (HTTPS)
- 5000 (应用端口)
- 22 (SSH,如果需要)
配置步骤(以阿里云为例):
- 登录云服务器控制台
- 找到安全组管理
- 选择对应实例的安全组
- 点击"配置规则"
- 点击"添加安全组规则"
- 添加规则:
- 授权策略:允许
- 协议类型:TCP
- 端口范围:80/80
- 授权对象:0.0.0.0/0
重复以上步骤添加443和5000端口。
九、启动服务
1. 启动Python项目
- 在宝塔面板中点击左侧菜单"网站"
- 选择顶部标签"Python项目"
- 找到kamaxitong项目
- 点击右侧"启动"按钮
等待项目启动完成,状态显示为"运行中"。
2. 重启Nginx
- 在宝塔面板中点击左侧菜单"软件商店"
- 找到Nginx服务
- 点击"重启"按钮
3. 测试服务
在终端中执行以下命令测试服务是否正常:
curl -I http://localhost:5000
应该返回200状态码表示服务正常运行。
十、验证部署
1. 访问测试
通过浏览器访问您的域名:
- 打开浏览器,输入您的域名(如http://km.yourdomain.com)
- 检查以下内容:
- 网站首页正常显示
- 页面样式和图片正常加载
- 导航链接可正常点击
2. 管理后台测试
- 访问管理后台登录页面:http://km.yourdomain.com/admin
- 使用默认账号登录:
- 用户名:admin
- 密码:admin123
- 检查登录是否成功
3. API接口测试
- 访问API文档页面:http://km.yourdomain.com/docs
- 测试几个关键API接口:
- 产品列表接口
- 卡密验证接口
十一、常见问题及解决方案
1. 502 Bad Gateway错误
问题原因:Python项目未正常启动或端口配置错误
解决方案:
-
检查Python项目状态:
- 在宝塔面板"网站"->"Python项目"中查看项目状态
- 如果未启动,点击"启动"按钮
-
检查端口配置:
- 确认项目配置中的端口为5000
- 确认Nginx反向代理目标URL为http://127.0.0.1:5000
-
查看项目日志:
- 在Python项目详情中点击"日志"标签
- 查看是否有错误信息
2. 数据库连接失败
问题原因:数据库配置错误或权限不足
解决方案:
-
检查数据库配置:
- 确认.env文件中DATABASE_URL配置正确
- 确认用户名、密码、数据库名无误
-
检查数据库权限:
- 在宝塔面板"数据库"中检查用户权限
- 确认用户可以从localhost访问数据库
-
测试数据库连接:
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静态文件配置错误
解决方案:
-
检查Nginx配置:
- 确认location /static/配置正确
- 确认路径指向正确的static目录
-
检查文件权限:
chmod -R 755 /www/wwwroot/kamaxitong/static
4. 域名无法访问
问题原因:DNS解析或防火墙问题
解决方案:
-
检查DNS解析:
nslookup your-domain.com -
检查防火墙设置:
- 确认宝塔面板安全设置中放行了相应端口
- 确认云服务器安全组放行了80和443端口
十二、维护管理
1. 日常维护
-
定期备份数据库:
# 在宝塔面板"数据库"中点击备份按钮 # 或使用命令行备份 mysqldump -u kamaxitong -p kamaxitong > /backup/kamaxitong_$(date +%Y%m%d).sql -
监控系统日志:
- 定期查看Python项目日志
- 查看Nginx访问日志和错误日志
-
更新安全补丁:
- 定期更新系统安全补丁
- 更新Python依赖包
2. 性能优化
-
根据访问量调整Gunicorn工作进程数:
- 在Python项目配置中调整进程数
- 一般设置为CPU核心数的1-2倍
-
配置Redis缓存(如需要):
- 在宝塔面板中安装Redis
- 修改项目配置启用缓存
3. 故障排查
-
查看Python项目日志:
- 在宝塔面板Python项目详情中查看日志
- 或查看logs目录下的日志文件
-
检查Nginx错误日志:
- 在宝塔面板"网站"->站点设置->日志中查看
-
检查系统资源使用情况:
- 在宝塔面板首页查看CPU、内存、磁盘使用情况
- 使用top或htop命令查看进程资源占用