需求分析
-
源:
-
目标:
- 服务器:[服务器IP]
- SSH 端口:[SSH端口]
- 用户:[用户名]
- 目标路径:/var/www/html/[你的域名]
-
功能要求:
- 当 push 到 main 分支时自动部署
- 只同步 public 文件夹内容
- 部署前清空目标目录
- 无需构建步骤
- 无需部署后操作
工作流程
- 生成新的 public 文件夹中的文件
- 提交并推送到 GitHub
- GitHub Actions 自动触发
- Actions 通过 SSH 连接服务器
- 清空目标目录
- 同步新文件到服务器
详细教程
1. 服务器配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1.1 SSH 登录服务器
ssh [用户名]@[服务器IP] -p [SSH端口]
# 1.2 生成 SSH 密钥对
ssh-keygen -t ed25519 -C "github-actions-deploy"
# 按三次回车,使用默认设置
# 1.3 设置 SSH 目录权限
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# 1.4 配置授权
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 1.5 查看私钥(需要复制这个内容)
vim ~/.ssh/id_ed25519
# 使用 y 复制内容
# 使用 :q 退出
# 1.6 创建并设置部署目录
mkdir -p /var/www/html/[你的域名]
chmod 755 /var/www/html/[你的域名]
2. GitHub 配置
-
添加 Repository Secrets
-
访问你的 GitHub 仓库的 Settings > Secrets and variables > Actions
-
点击 “New repository secret”
-
添加以下 secrets:
1
2
3
4
5SERVER_HOST: [服务器IP]
SERVER_PORT: [SSH端口]
SERVER_USERNAME: [用户名]
SERVER_SSH_KEY: [粘贴之前复制的私钥内容]
DEPLOY_PATH: /var/www/html/[你的域名]
-
-
创建 GitHub Actions 配置
- 在仓库中创建
.github/workflows/deploy.yml:
- 在仓库中创建
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
name: Deploy to Server
on:
push:
branches: [ main ]
paths:
- 'public/**'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SERVER_SSH_KEY }}
known_hosts: unnecessary
if_key_exists: replace
- name: Adding Known Hosts
run: ssh-keyscan -p ${{ secrets.SERVER_PORT }} -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts
- name: Clear target directory
run: ssh -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} "rm -rf ${{ secrets.DEPLOY_PATH }}/*"
- name: Deploy with rsync
run: rsync -avz -e "ssh -p ${{ secrets.SERVER_PORT }}" ./public/ ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DEPLOY_PATH }}
3. 提交配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 如果是新仓库,先克隆
git clone [你的仓库地址]
cd [仓库名]
# 创建 workflows 目录
mkdir -p .github/workflows
# 创建并编辑配置文件
vim .github/workflows/deploy.yml
# 粘贴上面的配置内容
# 提交更改
git add .github/workflows/deploy.yml
git commit -m "Add deployment workflow"
git push
# 如果遇到 GitHub 认证提示,输入 yes
4. 验证部署
- 访问 GitHub 仓库的 Actions 标签页
- 应该能看到一个新的 workflow 运行
- 检查服务器目标目录:
1
ls -la /var/www/html/[你的域名]
5. 故障排查
如果部署失败:
- 检查 GitHub Actions 日志
- 验证 SSH 连接:
1
ssh -p [SSH端口] [用户名]@[服务器IP]
- 检查目标目录权限
- 确认 Secrets 是否正确设置
▶ 远程修电脑,请访问 章九工具箱,点击电脑维修,加我微信咨询。
▶ 本网站的部分内容可能来源于网络,仅供大家学习与参考,如有侵权请联系我核实删除。
▶ 我是小章,目前全职提供电脑维修和IT咨询服务。如果您有任何电脑相关的问题,都可以问我噢。
文章来自互联网,只做分享使用。发布者:周斌,转转请注明出处:https://www.dingdanghao.com/article/1024898.html
