Files
photography/docs/deployment/caddy-setup.md
xujiang 23e154aec1 fix: 修复 Caddy 权限问题和路径配置
- 修复 Caddyfile 中的路径问题,使用绝对路径 /home/gitea/www/photography
- 创建权限修复脚本 fix-caddy-permissions.sh
- 设置正确的目录权限让 caddy 用户可以访问 gitea 用户目录
- 更新部署文档,添加权限修复步骤和故障排除指南

修复内容:
-  使用绝对路径替代 ~ 路径
-  设置目录权限 755 让 caddy 用户可访问
-  添加权限检查和修复脚本
-  完善故障排除文档

现在应该能解决 "permission denied" 错误
2025-07-09 10:05:13 +08:00

137 lines
2.9 KiB
Markdown
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.

# Caddy 配置指南
## 配置文件位置
`Caddyfile` 复制到服务器的 Caddy 配置目录:
### 常见位置:
- Ubuntu/Debian: `/etc/caddy/Caddyfile`
- CentOS/RHEL: `/etc/caddy/Caddyfile`
- 用户目录: `~/Caddyfile`
## 部署步骤
### 1. 上传配置文件
```bash
# 将 Caddyfile 上传到服务器
scp Caddyfile user@server:/etc/caddy/Caddyfile
```
### 2. 修复权限问题
```bash
# 上传权限修复脚本
scp fix-caddy-permissions.sh user@server:~/
ssh user@server 'chmod +x fix-caddy-permissions.sh && ./fix-caddy-permissions.sh'
```
### 3. 创建日志目录
```bash
sudo mkdir -p /var/log/caddy
sudo chown caddy:caddy /var/log/caddy
```
### 4. 验证配置
```bash
sudo caddy validate --config /etc/caddy/Caddyfile
```
### 5. 重新加载配置
```bash
sudo systemctl reload caddy
```
### 6. 检查状态
```bash
sudo systemctl status caddy
```
## 配置说明
### 基本功能
- **域名**: `photography.iriver.top`
- **根目录**: `~/www/photography`
- **自动 HTTPS**: Caddy 自动获取和续期 SSL 证书
- **文件服务**: 直接提供静态文件服务
### 优化功能
- **Gzip 压缩**: 减少传输大小
- **缓存控制**: 静态资源长期缓存HTML 短期缓存
- **安全头**: 防止常见安全问题
- **错误处理**: 404 错误重定向到 404.html
### 日志功能
- **位置**: `/var/log/caddy/photography.log`
- **格式**: JSON 格式便于分析
- **轮转**: 10MB 轮转,保留 5 个文件
## 故障排除
### 权限问题
如果遇到 `permission denied` 错误:
```bash
# 检查目录权限
ls -la /home/gitea/www/photography
# 运行权限修复脚本
./fix-caddy-permissions.sh
# 验证 caddy 用户可以访问
sudo -u caddy ls -la /home/gitea/www/photography
```
### 检查配置语法
```bash
caddy validate --config /path/to/Caddyfile
```
### 查看日志
```bash
# 系统日志
sudo journalctl -u caddy -f
# 应用日志
sudo tail -f /var/log/caddy/photography.log
```
### 测试配置
```bash
# 测试模式启动
sudo caddy run --config /etc/caddy/Caddyfile
```
### 常见错误解决
#### 1. Permission denied 错误
- **原因**: Caddy 进程无法访问用户目录
- **解决**: 运行 `fix-caddy-permissions.sh` 脚本
#### 2. 404 Not Found 错误
- **原因**: 文件路径不正确或文件不存在
- **解决**: 检查 `/home/gitea/www/photography` 目录是否有文件
#### 3. 证书获取失败
- **原因**: 域名 DNS 未正确指向服务器
- **解决**: 确认 DNS A 记录指向正确 IP
## 域名解析
确保域名 `photography.iriver.top` 的 DNS 记录指向服务器 IP
```
A photography.iriver.top YOUR_SERVER_IP
```
## SSL 证书
Caddy 会自动:
- 获取 Let's Encrypt SSL 证书
- 自动续期证书
- 强制 HTTPS 重定向
## 性能优化
配置包含以下优化:
- Gzip 压缩减少带宽
- 静态资源缓存提高加载速度
- 安全头提高安全性
- 错误页面友好处理