|
1 | 1 | # Cloudflare Pages 部署指南 |
2 | 2 |
|
| 3 | +## 🚨 500 Internal Server Error 解决方案 |
| 4 | + |
| 5 | +### 问题:部署成功但运行时500错误 |
| 6 | + |
| 7 | +**原因分析:** |
| 8 | + |
| 9 | +部署日志显示构建成功,但访问网站时出现500错误,通常是由于环境变量配置问题导致的运行时错误。 |
| 10 | + |
| 11 | +**主要原因:** |
| 12 | + |
| 13 | +1. **USERNAME 环境变量缺失** - 这是最常见的原因 |
| 14 | +2. D1 数据库绑定问题 |
| 15 | +3. 其他关键环境变量未设置 |
| 16 | + |
| 17 | +### 🎯 解决步骤 |
| 18 | + |
| 19 | +#### 第一步:设置 USERNAME 环境变量 |
| 20 | + |
| 21 | +在 Cloudflare Pages 控制台中: |
| 22 | + |
| 23 | +1. 进入您的项目设置 |
| 24 | +2. 点击 "Settings" → "Environment variables" |
| 25 | +3. 添加新的环境变量: |
| 26 | + - **Variable name**: `USERNAME` |
| 27 | + - **Value**: `katelya` (您的站长用户名) |
| 28 | + - **Environment**: Production 和 Preview 都要添加 |
| 29 | +4. 点击 "Save" |
| 30 | +5. 重新部署项目 |
| 31 | + |
| 32 | +#### 第二步:验证其他环境变量 |
| 33 | + |
| 34 | +确保以下环境变量已正确设置: |
| 35 | + |
| 36 | +```bash |
| 37 | +# 必需变量 |
| 38 | +USERNAME=katelya |
| 39 | +NEXT_PUBLIC_STORAGE_TYPE=d1 |
| 40 | +NEXT_PUBLIC_SITE_NAME=KatelyaTV |
| 41 | +NODE_ENV=production |
| 42 | + |
| 43 | +# 推荐设置 |
| 44 | +NEXTAUTH_URL=https://your-domain.pages.dev |
| 45 | +IMAGE_PROXY_ENABLED=true |
| 46 | +``` |
| 47 | + |
| 48 | +#### 第三步:检查 D1 数据库绑定 |
| 49 | + |
| 50 | +1. 确保在 Cloudflare Pages 中绑定了 D1 数据库 |
| 51 | +2. 绑定名称应为 `DB` |
| 52 | +3. 数据库应已初始化(运行过初始化脚本) |
| 53 | + |
3 | 54 | ## 部署问题修复 |
4 | 55 |
|
5 | 56 | ### 问题1:Edge Runtime 配置错误 |
@@ -126,9 +177,83 @@ export const runtime = 'edge'; |
126 | 177 | - `/api/debug/env` - 环境变量 (开发时) |
127 | 178 | - 主页 `/` - 前端页面 |
128 | 179 |
|
| 180 | +## 🔧 完整故障排除指南 |
| 181 | + |
| 182 | +### 500错误诊断清单 |
| 183 | + |
| 184 | +#### 1. 环境变量检查 |
| 185 | + |
| 186 | +```bash |
| 187 | +# 在 Cloudflare Pages 控制台检查这些变量 |
| 188 | +USERNAME=katelya # ❌ 最常缺失 |
| 189 | +NEXT_PUBLIC_STORAGE_TYPE=d1 # ✅ 通常已设置 |
| 190 | +NEXT_PUBLIC_SITE_NAME=KatelyaTV # ✅ 通常已设置 |
| 191 | +NODE_ENV=production # ✅ 通常已设置 |
| 192 | +``` |
| 193 | + |
| 194 | +#### 2. D1 数据库检查 |
| 195 | + |
| 196 | +- [ ] D1 数据库是否已创建 |
| 197 | +- [ ] 数据库是否正确绑定到 Pages 项目 |
| 198 | +- [ ] 绑定名称是否为 `DB` |
| 199 | +- [ ] 数据库是否已初始化 |
| 200 | + |
| 201 | +#### 3. 常见错误模式 |
| 202 | + |
| 203 | +| 错误现象 | 原因 | 解决方案 | |
| 204 | +|---------|------|----------| |
| 205 | +| 500 + 管理页面无法访问 | USERNAME 未设置 | 添加 USERNAME 环境变量 | |
| 206 | +| 500 + 数据库相关错误 | D1 绑定问题 | 检查数据库绑定配置 | |
| 207 | +| 构建成功但运行失败 | 环境变量缺失 | 检查所有必需变量 | |
| 208 | + |
| 209 | +### 验证部署成功 |
| 210 | + |
| 211 | +部署完成后访问以下端点验证: |
| 212 | + |
| 213 | +```bash |
| 214 | +# 1. 基本页面 |
| 215 | +https://your-domain.pages.dev/ # 主页 |
| 216 | +https://your-domain.pages.dev/login # 登录页 |
| 217 | + |
| 218 | +# 2. API 端点 |
| 219 | +https://your-domain.pages.dev/api/server-config # 服务器配置 |
| 220 | +https://your-domain.pages.dev/api/debug/env # 环境变量(开发时) |
| 221 | + |
| 222 | +# 3. 管理功能 |
| 223 | +https://your-domain.pages.dev/admin # 管理后台(需要正确的 USERNAME) |
| 224 | +``` |
| 225 | + |
| 226 | +### 紧急恢复方案 |
| 227 | + |
| 228 | +如果新部署出现问题: |
| 229 | + |
| 230 | +1. **立即回滚** |
| 231 | + |
| 232 | + ```bash |
| 233 | + # 在 Cloudflare Pages 控制台 |
| 234 | + Deployments → 选择之前的工作版本 → Rollback |
| 235 | + ``` |
| 236 | + |
| 237 | +2. **保留环境变量** |
| 238 | + |
| 239 | + ```bash |
| 240 | + # 记录当前所有环境变量配置 |
| 241 | + # 在新部署前先备份设置 |
| 242 | + ``` |
| 243 | + |
| 244 | +3. **分步部署** |
| 245 | + |
| 246 | + ```bash |
| 247 | + # 1. 先部署代码(不修改环境变量) |
| 248 | + # 2. 验证基本功能 |
| 249 | + # 3. 逐步添加/修改环境变量 |
| 250 | + ``` |
| 251 | + |
129 | 252 | ## 后续维护 |
130 | 253 |
|
131 | 254 | 1. 定期更新依赖 |
132 | 255 | 2. 监控部署日志 |
133 | 256 | 3. 备份数据库配置 |
134 | 257 | 4. 关注Cloudflare Pages更新 |
| 258 | +5. 定期检查环境变量配置 |
| 259 | +6. 监控网站运行状态 |
0 commit comments