Files
nl_cms-api/DEPLOYMENT_CHECKLIST.md
2025-07-29 12:45:07 +08:00

220 lines
4.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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有效性
### 数据库监控
- [ ] 连接数
- [ ] 查询性能
- [ ] 存储空间
- [ ] 备份状态
## 🔄 维护任务
### 日常维护
- [ ] 检查日志文件
- [ ] 监控系统资源
- [ ] 备份数据库
- [ ] 更新依赖包
### 定期维护
- [ ] 清理过期日志
- [ ] 优化数据库
- [ ] 更新安全补丁
- [ ] 性能调优
---
**部署完成后请保存此检查清单以备后续维护使用**