Files
nl_cms-api/DEPLOYMENT_CHECKLIST.md

220 lines
4.0 KiB
Go
Raw Normal View History

2025-07-29 12:45:07 +08:00
# CMS API 2.0 部署检查清单
## 部署前检查
### 1. 环境准备
- [ ] Go 1.21+ 已安装
- [ ] MySQL 8.0+ 已安装并运行
- [ ] Git 已安装如需从仓库拉取
### 2. 数据库准备
- [ ] 创建数据库用户如需要
- [ ] 设置数据库密码
- [ ] 确认数据库连接权限
- [ ] 执行数据库初始化脚本
### 3. 项目文件
- [ ] 下载/克隆项目代码
- [ ] 检查所有必要文件是否存在
- [ ] 配置文件权限正确
## 🚀 部署步骤
### 步骤1数据库初始化
```bash
# 1. 连接MySQL
mysql -u root -p
# 2. 执行初始化脚本
mysql -u root -p < database_design_new.sql
# 3. 验证表创建
mysql -u root -p -e "USE cc_cms_gf; SHOW TABLES;"
```
### 步骤2配置文件检查
```bash
# 检查配置文件
cat config/config.yaml
# 确认以下配置
# - 数据库连接信息
# - JWT签名密钥
# - 服务端口
# - 日志配置
```
### 步骤3依赖安装
```bash
# 安装Go依赖
go mod tidy
# 验证依赖
go mod verify
```
### 步骤4启动服务
```bash
# 方式1使用启动脚本
./start_new_server.ps1
# 方式2直接启动
go run main_new.go
# 方式3编译后启动
go build -o cms-api main_new.go
./cms-api
```
## 🧪 部署验证
### 1. 基础功能测试
```bash
# 运行测试脚本
./test_new_api.ps1
# 或手动测试
curl http://localhost:8080/
curl http://localhost:8080/test/db
```
### 2. API接口测试
```bash
# 测试登录
curl -X POST http://localhost:8080/api/public/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}'
# 测试认证接口需要替换TOKEN
curl -X GET http://localhost:8080/api/user/profile \
-H "Authorization: Bearer YOUR_TOKEN"
```
### 3. 数据库连接测试
```bash
# 检查数据库表
mysql -u root -p -e "
USE cc_cms_gf;
SELECT COUNT(*) as user_count FROM users;
SELECT COUNT(*) as config_count FROM system_configs;
"
```
## 🔧 配置优化
### 生产环境配置
```yaml
# config/config.yaml
server:
address: ":8080"
database:
default:
host: "127.0.0.1"
port: "3306"
user: "cms_user" # 建议使用专用用户
pass: "strong_password" # 使用强密码
name: "cc_cms_gf"
maxIdle: 10
maxOpen: 100
jwt:
signingKey: "your_secure_signing_key_here" # 更换为安全的密钥
expire: 7200
logger:
level: "info" # 生产环境建议使用info级别
stdout: false # 生产环境建议关闭控制台输出
```
### 安全配置
- [ ] 更换JWT签名密钥
- [ ] 设置强数据库密码
- [ ] 配置防火墙规则
- [ ] 启用HTTPS如需要
- [ ] 设置访问日志
## 🚨 故障排查
### 常见问题及解决方案
#### 1. 数据库连接失败
```bash
# 检查MySQL服务状态
systemctl status mysql # Linux
net start mysql # Windows
# 检查端口占用
netstat -an | grep 3306
# 测试数据库连接
mysql -u root -p -h 127.0.0.1 -P 3306
```
#### 2. 端口占用
```bash
# 检查端口占用
netstat -an | grep 8080 # Linux
netstat -an | findstr 8080 # Windows
# 杀死占用进程
kill -9 PID # Linux
taskkill /PID PID /F # Windows
```
#### 3. 权限问题
```bash
# 检查文件权限
ls -la config/config.yaml
# 修复权限
chmod 644 config/config.yaml
```
#### 4. 依赖问题
```bash
# 清理模块缓存
go clean -modcache
# 重新下载依赖
go mod download
go mod tidy
```
## 📊 监控检查
### 服务监控
- [ ] 服务进程状态
- [ ] 内存使用情况
- [ ] CPU使用情况
- [ ] 磁盘空间
### 应用监控
- [ ] API响应时间
- [ ] 错误日志
- [ ] 数据库连接池状态
- [ ] JWT Token有效性
### 数据库监控
- [ ] 连接数
- [ ] 查询性能
- [ ] 存储空间
- [ ] 备份状态
## 🔄 维护任务
### 日常维护
- [ ] 检查日志文件
- [ ] 监控系统资源
- [ ] 备份数据库
- [ ] 更新依赖包
### 定期维护
- [ ] 清理过期日志
- [ ] 优化数据库
- [ ] 更新安全补丁
- [ ] 性能调优
---
**部署完成后请保存此检查清单以备后续维护使用**