fix: 避免 sudo 权限问题,改用用户目录部署

- 修改部署路径从 /data/photography 到 ~/www/photography
- 移除所有 sudo 命令,避免密码提示问题
- 在用户目录中创建和管理文件,无需特殊权限
- 更新部署信息显示新的路径

修复内容:
-  解决 sudo 密码错误
-  使用用户目录避免权限问题
-  简化部署流程
- ⚠️  需要手动配置 Web 服务器指向新路径

部署路径:~/www/photography/
This commit is contained in:
xujiang
2025-07-09 09:52:36 +08:00
parent c35b0751ca
commit 8d8409a4c6

View File

@ -51,19 +51,21 @@ jobs:
# 测试 SSH 连接 # 测试 SSH 连接
sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "echo 'SSH 连接成功'" sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "echo 'SSH 连接成功'"
# 在服务器上创建部署目录并设置权限 # 在服务器上创建用户目录下的部署目录
sshpass -e ssh -o StrictHostKeyChecking=no ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "sudo mkdir -p /data/photography && sudo chown -R ${{ secrets.ALIYUN_USER_NAME }}:${{ secrets.ALIYUN_USER_NAME }} /data/photography && sudo chmod -R 755 /data/photography" sshpass -e ssh -o StrictHostKeyChecking=no ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "mkdir -p ~/www/photography"
# 上传构建文件到服务器(使用密码认证) # 上传构建文件到服务器用户目录(使用密码认证)
sshpass -e rsync -avz --delete --progress -e "ssh -o StrictHostKeyChecking=no" frontend/out/ ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }}:/data/photography/ sshpass -e rsync -avz --delete --progress -e "ssh -o StrictHostKeyChecking=no" frontend/out/ ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }}:~/www/photography/
# 设置最终文件权限 # 设置文件权限(用户目录无需 sudo
sshpass -e ssh -o StrictHostKeyChecking=no ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "sudo chmod -R 755 /data/photography" sshpass -e ssh -o StrictHostKeyChecking=no ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "chmod -R 755 ~/www/photography"
# 重新加载 Caddy 配置 (可选,根据你的服务器配置) # 显示部署信息(Caddy 配置需要手动配置指向新路径)
sshpass -e ssh -o StrictHostKeyChecking=no ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "sudo systemctl reload caddy || echo 'Caddy 重启跳过'" sshpass -e ssh -o StrictHostKeyChecking=no ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} "echo '提示:请确保 Web 服务器配置指向 ~/www/photography/ 目录'"
echo "✅ 部署完成!访问地址http://${{ secrets.ALIYUN_IP }}" echo "✅ 部署完成!"
echo "📁 部署路径:~/www/photography/"
echo "🌐 访问地址http://${{ secrets.ALIYUN_IP }}"
- name: Notify success - name: Notify success
if: success() if: success()