diff --git a/Caddyfile b/Caddyfile index e92ecd4..5bcbc4a 100644 --- a/Caddyfile +++ b/Caddyfile @@ -3,7 +3,7 @@ photography.iriver.top { # 静态文件服务 - root * ~/www/photography + root * /home/gitea/www/photography # 启用文件服务器 file_server diff --git a/docs/deployment/caddy-setup.md b/docs/deployment/caddy-setup.md index e7565e6..59c654c 100644 --- a/docs/deployment/caddy-setup.md +++ b/docs/deployment/caddy-setup.md @@ -17,23 +17,30 @@ scp Caddyfile user@server:/etc/caddy/Caddyfile ``` -### 2. 创建日志目录 +### 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 ``` -### 3. 验证配置 +### 4. 验证配置 ```bash sudo caddy validate --config /etc/caddy/Caddyfile ``` -### 4. 重新加载配置 +### 5. 重新加载配置 ```bash sudo systemctl reload caddy ``` -### 5. 检查状态 +### 6. 检查状态 ```bash sudo systemctl status caddy ``` @@ -59,6 +66,19 @@ sudo systemctl status caddy ## 故障排除 +### 权限问题 +如果遇到 `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 @@ -79,6 +99,20 @@ sudo tail -f /var/log/caddy/photography.log 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: diff --git a/fix-caddy-permissions.sh b/fix-caddy-permissions.sh new file mode 100755 index 0000000..dc41705 --- /dev/null +++ b/fix-caddy-permissions.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# 修复 Caddy 访问 gitea 用户目录的权限问题 + +echo "🔧 修复 Caddy 权限问题..." + +# 1. 确保目录存在 +sudo -u gitea mkdir -p /home/gitea/www/photography + +# 2. 设置目录权限,让 caddy 用户可以访问 +# 给 gitea 主目录添加执行权限(让其他用户可以进入) +sudo chmod 755 /home/gitea + +# 给 www 目录设置权限 +sudo chmod 755 /home/gitea/www + +# 给 photography 目录设置权限 +sudo chmod 755 /home/gitea/www/photography + +# 3. 设置文件权限 +sudo find /home/gitea/www/photography -type f -exec chmod 644 {} \; +sudo find /home/gitea/www/photography -type d -exec chmod 755 {} \; + +# 4. 检查 caddy 用户是否可以访问 +echo "📋 检查权限..." +sudo -u caddy ls -la /home/gitea/www/photography || echo "⚠️ caddy 用户无法访问目录" + +echo "✅ 权限修复完成!" +echo "🔄 请重新加载 Caddy 配置:sudo systemctl reload caddy" \ No newline at end of file