信息发布→ 登录 注册 退出

laravel如何使用GitHub Actions实现自动化部署_Laravel GitHub Actions自动化部署方法

发布时间:2025-10-07

点击量:
配置GitHub Actions可实现Laravel项目自动化部署,通过定义deploy.yml工作流,在代码推送到main分支时自动执行测试、构建并部署至服务器。

使用 GitHub Actions 实现 Laravel 项目的自动化部署,可以大幅减少手动操作,提升开发效率。整个流程包括代码推送后自动运行测试、构建项目,并将代码安全地部署到服务器。下面介绍具体实现方法。

配置 GitHub Actions 工作流文件

在 Laravel 项目根目录创建 .github/workflows/deploy.yml 文件,定义 CI/CD 流程。以下是一个典型的工作流示例:

name: Deploy Laravel App

on: push: branches: [ main ] # 监听 main 分支的推送

jobs: deploy: runs-on: ubuntu-latest steps:

  • name: Checkout code uses: actions/checkout@v4

  • name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.1' extensions: mbstring, dom, curl, openssl tools: composer:v2

  • name: Install dependencies run: composer install --no-interaction --optimize-autoloader

  • name: Run tests run: php artisan test

  • name: Deploy via SSH uses: appleboy/scp-action@v0.1.6 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} port: 22 source: "." target: "/var/www/html/my-laravel-app" strip_components: 1

该工作流会在每次推送到 main 分支时触发,执行代码检出、PHP 环境搭建、依赖安装、测试运行,并通过 SCP 将代码复制到远程服务器。

设置服务器环境与部署脚本

确保目标服务器已配置好 Laravel 所需环境(如 Nginx、PHP、MySQL、Composer 等)。部署完成后,通常需要执行一些 Artisan 命令,例如缓存优化或数据库迁移。

可以在部署后添加 SSH 执行命令的步骤:

      - name: Run remote commands
        uses: appleboy/ssh-action@v0.1.10
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: 22
          script: |
            cd /var/www/html/my-laravel-app
            composer install --optimize-autoloader --no-dev
            php artisan config:cache
            php artisan route:cache
            php artisan view:cache
            php artisan event:cache

这样可以确保部署后应用处于高性能状态。

配置 GitHub Secrets

为了安全,服务器登录信息不应写在代码中。需在 GitHub 仓库的 Settings > Secrets and variables > Actions 中添加以下密钥:

  • HOST: 服务器 IP 或域名
  • USERNAME: SSH 登录用户名(如 ubuntu)
  • PASSWORD: 用户密码,或使用 SSH Key 更安全

若使用 SSH 私钥认证,可添加 KEY 密钥,并在 action 中使用 key 参数代替 password。

优化与注意事项

实际使用中可进一步优化:

  • 只部署必要文件(排除 tests、.env、node_modules 等),可通过 .gitattributes 配置 export-ignore
  • 使用 Laravel Forge 或 Envoyer 可更方便地管理部署流程
  • 结合 Cache Action 提升依赖安装速度
  • 设置失败通知(如邮件或 Slack)以便及时响应问题

基本上就这些。只要配置好 workflow 文件和服务器环境,Laravel 的 GitHub Actions 自动化部署就能稳定运行,让上线变得简单可靠。

标签:# ssh  # 高性能  # 可通过  # 不应  # 并将  # 所需  # 并在  # 会在  # 就能  # 是一个  # 工作流  # 自动化  # mysql  # ubuntu  # 数据库  # nginx  # github  # composer  # node  # git  # html  # laravel  # word  # php  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!