# ZJPB 服务器更新标准流程 ## 适用场景 - 代码更新后需要部署到服务器 - 数据库结构变更需要迁移 - 新功能上线 ## 服务器环境 - **部署方式**: 1Panel 管理 - **项目路径**: `/opt/1panel/apps/zjpb` - **运行方式**: Python 直接运行或 Gunicorn - **数据库**: MySQL/MariaDB --- ## 标准更新流程 ### 第一步:提交代码到 Git ```bash # 在本地开发环境 git add . git commit -m "feat: 功能描述" git push origin master ``` ### 第二步:登录服务器 ```bash ssh your_username@server_ip ``` ### 第三步:进入项目目录 ```bash cd /opt/1panel/apps/zjpb ``` ### 第四步:停止应用 ```bash # 查找进程 ps aux | grep python | grep -v grep # 停止进程(使用进程ID) kill # 或者强制停止 pkill -f "python app.py" ``` ### 第五步:拉取最新代码 ```bash git pull origin master ``` ### 第六步:激活虚拟环境 ```bash source venv/bin/activate ``` ### 第七步:安装/更新依赖(如有) ```bash pip install -r requirements.txt ``` ### 第八步:运行数据库迁移(如有) ```bash # 根据具体的迁移脚本名称 python migrate_xxx.py ``` ### 第九步:启动应用 ```bash # 后台运行 nohup python app.py > app.log 2>&1 & # 或使用 Gunicorn nohup gunicorn -w 4 -b 0.0.0.0:5000 app:app > gunicorn.log 2>&1 & ``` ### 第十步:验证启动成功 ```bash # 检查进程 ps aux | grep python | grep -v grep # 查看日志 tail -f app.log # 测试访问 curl http://localhost:5000/ ``` --- ## 快速命令(一键执行) ```bash # 进入目录并更新 cd /opt/1panel/apps/zjpb && \ pkill -f "python app.py" && \ git pull origin master && \ source venv/bin/activate && \ nohup python app.py > app.log 2>&1 & && \ tail -f app.log ``` --- ## 注意事项 1. **数据库迁移前必须备份** ```bash mysqldump -u root -p zjpb > backup_$(date +%Y%m%d_%H%M%S).sql ``` 2. **检查环境变量配置** - 确保 `.env` 文件存在且配置正确 - 新增的环境变量需要手动添加 3. **日志监控** - 启动后观察日志至少 1-2 分钟 - 确认没有错误信息 4. **回滚方案** ```bash # 如果出现问题,回滚到上一个版本 git reset --hard HEAD~1 # 重启应用 ``` --- ## 常见问题 ### 问题1:端口被占用 ```bash # 查找占用端口的进程 lsof -i :5000 # 杀死进程 kill -9 ``` ### 问题2:虚拟环境找不到 ```bash # 重新创建虚拟环境 python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 问题3:数据库连接失败 ```bash # 检查数据库服务状态 systemctl status mysql # 检查 .env 配置 cat .env | grep DATABASE ``` --- **创建日期**: 2025-02-07 **最后更新**: 2025-02-07