# REDCap 生产环境部署信息记录 **创建日期:** 2026-02-02 **最后更新:** 2026-02-02 **状态:** ✅ 部署成功运行中(HTTPS + 域名已配置) **⚠️ 机密文档:** 请妥善保管,不要提交到公开代码仓库 --- ## 🌐 访问地址 | 服务 | 地址 | 备注 | |------|------|------| | **REDCap 主页** | https://redcap.xunzhengyixue.com/ | ✅ 生产环境(推荐) | | **REDCap 控制中心** | https://redcap.xunzhengyixue.com/ControlCenter/ | 管理员入口 | | **REDCap API** | https://redcap.xunzhengyixue.com/api/ | API 接口 | | **备用地址(IP)** | http://39.105.153.58/ | 会重定向到 HTTPS | --- ## 🖥️ ECS 服务器信息 | 项目 | 值 | |------|-----| | **实例名称** | launch-advisor-20260108 | | **实例ID** | i-2ze51hziwjg23m2u1fg4 | | **公网IP** | `39.105.153.58` | | **私网IP** | `172.17.173.82` | | **规格** | ecs.u2a-c1m2.large (2核 4GB) | | **操作系统** | Alibaba Cloud Linux 3.2104 LTS | | **可用区** | 华北2(北京)F | | **到期时间** | 2027-01-09 | | **VPC** | vpc-2ze055cptkew9c38w4r06 | ### SSH 登录信息 ```bash ssh root@39.105.153.58 ``` | 项目 | 值 | |------|-----| | **用户名** | root | | **密码** | `Xilu,881009` | --- ## 🗄️ RDS MySQL 数据库信息 | 项目 | 值 | |------|-----| | **实例ID** | rm-2ze9587199003517c | | **数据库类型** | MySQL 8.0 | | **规格** | mysql.n2e.medium.1 (2核 4GB) | | **内网地址** | `rm-2ze9587199003517c.mysql.rds.aliyuncs.com` | | **端口** | 3306 | | **可用区** | 华北2(北京)F | | **到期时间** | 2027-01-09 | ### REDCap 数据库 | 项目 | 值 | |------|-----| | **数据库名** | `redcap_prod` | | **字符集** | utf8mb4 | | **用户名** | `redcap_user` | | **密码** | `Xilu@881009` | ### 数据库连接命令 ```bash mysql -h rm-2ze9587199003517c.mysql.rds.aliyuncs.com -u redcap_user -p'Xilu@881009' redcap_prod ``` --- ## 👤 REDCap 管理员账户 | 项目 | 值 | |------|-----| | **用户名** | `admin` | | **密码** | `Xilu,881009` | | **权限** | 超级管理员 | --- ## 🔐 关键安全信息 ### Salt 值(⚠️ 永不可变!) ``` redcap_prod_salt_2026_xilu_medical_v1_never_change ``` > **警告**:Salt 值用于数据去标识化哈希,一旦设置**永远不能更改**! > 更改将导致所有去标识化数据失效,请务必备份保存。 ### database.php 配置文件位置 ``` ECS 路径: /opt/redcap/config/database.php 容器内路径: /var/www/html/redcap/database.php ``` --- ## 🐳 Docker 部署信息 ### 文件路径 | 文件/目录 | 路径 | |----------|------| | **部署根目录** | `/opt/redcap/` | | **REDCap 源码** | `/opt/redcap/redcap15.8.0/redcap/` | | **Docker Compose 文件** | `/opt/redcap/docker-compose.prod.yml` | | **Dockerfile** | `/opt/redcap/Dockerfile.redcap` | | **database.php** | `/opt/redcap/config/database.php` | | **Apache 配置** | `/opt/redcap/config/apache/redcap.conf` | | **PHP 配置** | `/opt/redcap/config/php/php.ini` | | **日志目录** | `/opt/redcap/logs/` | ### Docker 信息 | 项目 | 值 | |------|-----| | **容器名称** | redcap-prod | | **镜像名称** | redcap-redcap-web | | **Docker 版本** | 26.1.3 | | **Docker Compose 版本** | v2.27.0 | ### Docker 数据卷 | 卷名 | 用途 | 备注 | |------|------|------| | redcap-edocs-prod | 上传文件 | **重要!需定期备份** | | redcap-modules-prod | External Modules | 可选备份 | | redcap-temp-prod | 临时文件 | 可定期清理 | ### 常用 Docker 命令 ```bash # 进入部署目录 cd /opt/redcap # 查看容器状态 docker compose -f docker-compose.prod.yml ps # 查看日志 docker logs redcap-prod --tail 100 # 重启服务 docker compose -f docker-compose.prod.yml restart # 停止服务 docker compose -f docker-compose.prod.yml stop # 启动服务 docker compose -f docker-compose.prod.yml start # 进入容器 docker exec -it redcap-prod bash ``` --- ## 🔧 Docker 镜像加速器配置 配置文件:`/etc/docker/daemon.json` ```json { "registry-mirrors": [ "https://docker.1panel.live", "https://dockerpull.org", "https://docker.rainbond.cc", "https://docker.m.daocloud.io" ] } ``` --- ## 🛡️ 安全组配置 | 规则 | 协议 | 端口 | 授权对象 | |------|------|------|---------| | 入方向 | ALL | 全部 | 0.0.0.0/0 | > **安全建议**:生产环境应限制 SSH 端口(22)只允许特定 IP 访问 --- ## 🔒 HTTPS / SSL 配置 ### 域名信息 | 项目 | 值 | |------|-----| | **域名** | `redcap.xunzhengyixue.com` | | **DNS 解析** | A 记录 → `39.105.153.58` | | **SSL 证书** | 阿里云免费证书(DV) | | **证书有效期** | 1 年(需定期续期) | ### Nginx 反向代理 | 项目 | 值 | |------|-----| | **Nginx 版本** | 系统默认 | | **配置文件** | `/etc/nginx/conf.d/redcap.conf` | | **SSL 证书路径** | `/etc/nginx/ssl/redcap.xunzhengyixue.com.pem` | | **SSL 私钥路径** | `/etc/nginx/ssl/redcap.xunzhengyixue.com.key` | | **代理目标** | `http://127.0.0.1:8080` | ### 架构说明 ``` 用户访问 https://redcap.xunzhengyixue.com ↓ Nginx (443/80) ← SSL 终止 ↓ Docker 容器 (8080) ← REDCap Apache ↓ RDS MySQL (3306) ← 数据库 ``` ### Nginx 常用命令 ```bash # 检查配置 nginx -t # 重启 Nginx systemctl restart nginx # 查看状态 systemctl status nginx # 查看日志 tail -f /var/log/nginx/error.log ``` --- ## 📦 软件版本 | 软件 | 版本 | |------|------| | REDCap | 15.8.0 | | PHP | 8.1.x | | Apache | 2.4.65 | | MySQL | 8.0 (RDS) | | Nginx | 系统默认 | | Docker | 26.1.3 | | Docker Compose | v2.27.0 | | 操作系统 | Alibaba Cloud Linux 3.2104 | --- ## 💾 备份策略 ### 数据库备份命令 ```bash # 手动备份 mysqldump -h rm-2ze9587199003517c.mysql.rds.aliyuncs.com \ -u redcap_user -p'Xilu@881009' \ redcap_prod > /opt/redcap/backups/redcap_db_$(date +%Y%m%d).sql # 备份 edocs(上传文件) docker cp redcap-prod:/var/www/html/redcap/edocs /opt/redcap/backups/edocs_$(date +%Y%m%d) ``` ### 建议备份频率 | 数据类型 | 频率 | 保留时间 | |---------|------|---------| | 数据库 | 每日 | 30 天 | | edocs 文件 | 每周 | 90 天 | | 配置文件 | 每次修改后 | 永久 | --- ## 📋 部署时间线 | 日期 | 事件 | |------|------| | 2026-02-02 | ECS 服务器初始化,安装 Docker CE 26.1.3 | | 2026-02-02 | 配置 Docker 镜像加速器(国内源) | | 2026-02-02 | RDS MySQL 配置,创建数据库 redcap_prod 和用户 | | 2026-02-02 | REDCap 15.8.0 源码和配置文件上传 | | 2026-02-02 | Docker 容器构建和启动 | | 2026-02-02 | 执行 redcap_install.sql 初始化数据库表 | | 2026-02-02 | ✅ REDCap 生产环境部署完成(HTTP) | | 2026-02-02 | 配置域名 redcap.xunzhengyixue.com DNS 解析 | | 2026-02-02 | 申请并配置阿里云 SSL 证书 | | 2026-02-02 | 安装 Nginx 反向代理,配置 HTTPS | | 2026-02-02 | ✅ HTTPS + 域名配置完成 | --- ## ⚠️ 重要提醒 1. **Salt 值永不可变** - 更改将导致数据损坏 2. **定期备份数据库** - 防止数据丢失 3. **定期更新密码** - 增强安全性 4. **监控服务器状态** - 及时发现问题 5. **不要将此文档提交到公开仓库** - 包含敏感信息 --- ## 📞 技术支持 - REDCap 官方文档:https://projectredcap.org/ - 部署操作手册:[10-REDCap_Docker部署操作手册.md](./10-REDCap_Docker部署操作手册.md) - ECS 部署方案:[14-REDCap_ECS生产环境部署方案.md](./14-REDCap_ECS生产环境部署方案.md) - 问题排查手册:[13-部署问题排查手册.md](./13-部署问题排查手册.md) --- **文档版本**:v1.0 **创建者**:AI Clinical Research 开发团队