Skip to content

Commit 412ce4c

Browse files
committed
fix: 添加缺失的USERNAME环境变量以修复500错误
- 在 wrangler.toml 中为生产和预览环境添加 USERNAME 变量 - USERNAME 用于站长用户身份验证和管理权限控制 - 修复因缺失 USERNAME 导致的管理后台无法访问问题 - 更新部署指南,添加详细的500错误故障排除方案 - 包含完整的环境变量检查清单和验证步骤
1 parent 2937cf8 commit 412ce4c

File tree

2 files changed

+127
-0
lines changed

2 files changed

+127
-0
lines changed

CLOUDFLARE_PAGES_DEPLOYMENT.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,56 @@
11
# Cloudflare Pages 部署指南
22

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+
354
## 部署问题修复
455

556
### 问题1:Edge Runtime 配置错误
@@ -126,9 +177,83 @@ export const runtime = 'edge';
126177
- `/api/debug/env` - 环境变量 (开发时)
127178
- 主页 `/` - 前端页面
128179

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+
129252
## 后续维护
130253

131254
1. 定期更新依赖
132255
2. 监控部署日志
133256
3. 备份数据库配置
134257
4. 关注Cloudflare Pages更新
258+
5. 定期检查环境变量配置
259+
6. 监控网站运行状态

wrangler.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ NEXT_PUBLIC_STORAGE_TYPE = "d1"
1919
NEXT_PUBLIC_SITE_NAME = "KatelyaTV"
2020
NEXT_PUBLIC_SITE_DESCRIPTION = "高性能影视播放平台"
2121
NEXTAUTH_URL = "https://your-domain.pages.dev"
22+
USERNAME = "katelya"
2223
IMAGE_PROXY_ENABLED = "true"
2324
CACHE_TTL = "3600"
2425
CORS_ORIGIN = "*"
@@ -45,5 +46,6 @@ database_id = "6d580637-1f87-4ddf-8b4d-3d97254b4c33"
4546
NEXT_PUBLIC_STORAGE_TYPE = "d1"
4647
NEXT_PUBLIC_SITE_NAME = "KatelyaTV"
4748
NEXT_PUBLIC_SITE_DESCRIPTION = "高性能影视播放平台"
49+
USERNAME = "katelya"
4850
IMAGE_PROXY_ENABLED = "true"
4951
NODE_ENV = "production"

0 commit comments

Comments
 (0)