讲师中心 微信公众号
AI工具推荐 视频效率加速

Laravel怎么使用Github Actions实现CI/CD自动化部署

云枫吖_5052

云枫吖_5052

发布时间:2025-11-18 18:41:02

|

809人浏览过

|

来源于php中文网

原创

答案:通过配置GitHub Actions工作流文件,实现Laravel项目在代码推送后自动测试并部署至服务器。首先确保服务器环境完备且SSH连接安全,随后在GitHub Secrets中配置所需密钥,包括SSH信息和.env变量;接着创建deploy.yml工作流文件,定义触发条件、运行环境及部署步骤,涵盖代码检出、依赖安装、环境配置、迁移与构建,并通过SSH插件执行远程部署命令;最后可优化为符号链接部署结构以支持零停机发布,整体流程自动化高效,适用于中小型项目快速上线。

laravel怎么使用github actions实现ci/cd自动化部署

要使用 GitHub Actions 为 Laravel 项目实现 CI/CD 自动化部署,核心是通过配置工作流文件(workflow)在代码推送或合并时自动运行测试、构建并部署到服务器。整个流程无需第三方工具,直接集成在 GitHub 中,适合中小型 Laravel 项目快速上线。

1. 准备服务器与项目环境

确保目标服务器已安装 PHP、Composer、MySQL、Nginx 或 Apache 等 Laravel 所需的基础环境。同时配置好 SSH 访问权限,推荐使用部署密钥或 SSH 密钥对实现安全连接。

在服务器上创建项目目录,例如:/var/www/example.com,并设置正确的文件权限(如 www-data 用户可读写 storage 和 bootstrap/cache)。

2. 配置 GitHub Secrets

进入 GitHub 项目的 Settings > Secrets and variables > Actions 页面,添加以下密钥:

GitHub Actions Deploy Risk Audit
GitHub Actions Deploy Risk Audit

通过评估失败率、未解决的连续失败和上次成功部署以来的时间,审计GitHub Actions运行的部署工作流风险。

下载
  • SSH_HOST:服务器 IP 或域名
  • SSH_USER:登录用户名(如 ubuntu、root)
  • SSH_KEY:私钥内容(从本地生成的 id_rsa 部署密钥粘贴)
  • SSH_PORT:SSH 端口(默认 22)
  • DB_PASSWORD:数据库密码(用于 .env)
  • APP_KEY:Laravel 应用密钥(可从本地 .env 复制)

3. 创建 GitHub Actions 工作流文件

在项目根目录创建 .github/workflows/deploy.yml 文件:

name: Deploy Laravel App

on: push: branches: [ main ] # 触发分支,如 main 或 master

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, pdo, mysql tools: composer:v2

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

  • name: Copy environment file run: cp .env.example .env

  • name: Generate application key run: php artisan key:generate env: APP_KEY: ${{ secrets.APP_KEY }}

  • name: Run migrations run: php artisan migrate --force env: DB_DATABASE: your_db_name DB_USERNAME: your_db_user DB_PASSWORD: ${{ secrets.DB_PASSWORD }}

  • name: Build assets (if using Laravel Mix) run: npm ci && npm run build

  • name: Deploy via SSH uses: appleboy/ssh-action@v0.1.10 with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USER }} key: ${{ secrets.SSH_KEY }} port: ${{ secrets.SSH_PORT }} script: | cd /var/www/example.com git pull origin main composer install --optimize-autoloader --no-dev php artisan config:cache php artisan route:cache php artisan view:cache sudo systemctl reload nginx

4. 调整部署策略与优化

上述流程适用于简单场景。若追求零停机,可引入“符号链接部署”结构(类似 Laravel Forge 的方式):

  • 每次部署到新目录(如 releases/20250405001)
  • 更新 symbolic link(如 current -> latest release)
  • 配合 supervisor、queue worker 重启等命令

也可将部署脚本抽离为 shell 脚本放在服务器上,GitHub Actions 只负责触发执行,减少 workflow 复杂度。

基本上就这些。只要密钥配置正确,服务器环境就绪,推送代码后 GitHub Actions 就会自动完成测试和部署。不复杂但容易忽略细节,比如 .env 权限、SSH 登录限制、composer 扩展缺失等。

相关文章

Github
Github

Github是一款非常实用的代码开放工具,用户可以按照自己的需求进行搜索,从而快速定位到所需的代码或项目位置,还能在软件中建立自己的代码仓库,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

817

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

815

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

2408

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3401

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

4770

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

3196

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

6089

2025.08.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

1356

2026.03.04

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

80

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 176人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 279人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn