====================================================== 工资发放管理系统 - 生产环境打包说明 ====================================================== 版本: v1.0.1 打包日期: 2025-12-27 ====================================================== 一、打包前准备 ====================================================== 1. 确认系统功能测试通过 2. 确认数据库备份已完成 3. 准备生产环境服务器信息: - 服务器IP地址 - MySQL数据库地址和端口 - Redis地址和端口 - 数据库用户名和密码 ====================================================== 二、后端打包 ====================================================== 1. 修改生产环境配置 文件: backend\src\main\resources\application-prod.yml 需要修改的配置项: - spring.datasource.druid.url (数据库地址) - spring.datasource.druid.username (数据库用户名) - spring.datasource.druid.password (数据库密码) - spring.redis.host (Redis地址) - spring.redis.password (Redis密码,如有) 2. 执行打包命令 cd "d:\payroll system\backend" mvn clean package -DskipTests -Pprod 3. 打包产物 位置: backend\target\payroll-system-1.0.0.jar 大小: 约50-60MB ====================================================== 三、前端打包 ====================================================== 1. 执行打包命令 cd "d:\payroll system\frontend\payroll-web" npm run build 2. 打包产物 位置: frontend\payroll-web\dist\ 内容: - index.html (入口文件) - assets\ (静态资源目录) ====================================================== 四、部署文件清单 ====================================================== 需要上传到服务器的文件: 1. 后端部署包 - payroll-system-1.0.0.jar 2. 前端部署包 - dist目录下的所有文件 3. 数据库脚本 - backend\src\main\resources\db\schema.sql - backend\src\main\resources\db\salary_schema.sql - backend\src\main\resources\db\attendance_schema.sql - backend\src\main\resources\db\payroll_schema.sql - backend\src\main\resources\db\insurance_schema.sql 4. 配置文件(可选) - application-prod.yml (如需外部配置) ====================================================== 五、服务器部署步骤 ====================================================== 1. 安装运行环境 - JDK 1.8+ - MySQL 8.0 - Redis 6.0+ - Nginx (用于前端部署) 2. 创建数据库 mysql -u root -p CREATE DATABASE payroll_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 3. 导入数据库脚本 mysql -u root -p payroll_system < schema.sql mysql -u root -p payroll_system < salary_schema.sql mysql -u root -p payroll_system < attendance_schema.sql mysql -u root -p payroll_system < payroll_schema.sql mysql -u root -p payroll_system < insurance_schema.sql 4. 部署后端 # 创建部署目录 mkdir -p /opt/payroll-system # 上传jar包到服务器 scp payroll-system-1.0.0.jar user@server:/opt/payroll-system/ # 启动后端服务 cd /opt/payroll-system nohup java -jar payroll-system-1.0.0.jar --spring.profiles.active=prod > logs.log 2>&1 & 5. 部署前端 # Nginx配置示例 server { listen 80; server_name your-domain.com; root /var/www/payroll-web; index index.html; location / { try_files $uri $uri/ /index.html; } location /api/ { proxy_pass http://localhost:8080/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } # 上传前端文件 scp -r dist/* user@server:/var/www/payroll-web/ # 重启Nginx nginx -s reload ====================================================== 六、验证部署 ====================================================== 1. 检查后端服务 # 查看进程 ps aux | grep payroll-system # 查看日志 tail -f /opt/payroll-system/logs.log # 测试接口 curl http://localhost:8080/api/auth/test-password 2. 检查前端访问 浏览器访问: http://your-domain.com 测试登录: - 用户名: admin - 密码: 123456 3. 检查数据库连接 查看后端日志中是否有数据库连接成功的信息 ====================================================== 七、常见问题 ====================================================== 1. 后端启动失败 - 检查Java版本是否为1.8+ - 检查数据库连接配置是否正确 - 查看logs.log日志文件 2. 前端无法访问 - 检查Nginx配置是否正确 - 检查文件权限 - 查看Nginx错误日志 3. 接口调用失败 - 检查后端服务是否启动 - 检查Nginx代理配置 - 检查防火墙规则 ====================================================== 八、停止和重启服务 ====================================================== 停止后端服务: ps aux | grep payroll-system kill -9 <进程ID> 重启后端服务: cd /opt/payroll-system nohup java -jar payroll-system-1.0.0.jar --spring.profiles.active=prod > logs.log 2>&1 & 重启Nginx: nginx -s reload ====================================================== 九、备份策略 ====================================================== 生产环境建议: 1. 每天凌晨自动备份数据库 2. 保留最近30天的备份 3. 每周完整备份一次并异地存储 自动备份脚本示例: #!/bin/bash DATE=$(date +%Y%m%d) mysqldump -u root -p数据库密码 payroll_system > /backup/payroll_${DATE}.sql find /backup -name "payroll_*.sql" -mtime +30 -delete ====================================================== 联系方式: 部署负责人: 部署日期: 2025-12-27 ======================================================