温馨提示×

Laravel在Linux上如何更新升级

小樊
42
2025-11-16 17:56:09
栏目: 智能运维

Laravel 在 Linux 上的升级指南

一 升级前准备

  • 备份关键资产:代码仓库(确保有最新提交/标签)、数据库(mysqldump 或等效方式)、环境配置(.env)、存储与日志(storage/public/storagestorage/logs/)。
  • 确认目标版本要求:核对 PHP 版本扩展、以及第三方包的兼容性;阅读目标版本的 UPGRADE.mdCHANGELOG.md,了解重大变更与弃用项。
  • 准备回滚方案:保留当前可运行的发布包或Git 标签/分支,便于快速回退。
  • 搭建与生产一致的预发布/测试环境,优先在测试环境完成全部验证后再上线。
  • 可选工具:复杂升级可考虑 Laravel Shift 自动化辅助;具备自动化测试能显著降低风险。

二 标准升级流程(小版本或补丁)

  • 查看当前版本:php artisan --version
  • 更新 Composer:composer self-update(确保依赖解析能力与稳定性)。
  • 在应用根目录升级框架:composer update laravel/framework(或带版本约束:composer require laravel/framework:<目标版本>)。
  • 执行升级指令:运行 php artisan upgrade(Laravel 提供的升级辅助命令,用于应用框架层面的调整)。
  • 清缓存:php artisan config:clear && php artisan route:clear && php artisan view:clear
  • 数据库与代码检查:如有迁移则执行 php artisan migrate(先备份),并运行测试/手工回归核心流程。
  • 上线与监控:平滑切换(如蓝绿/灰度),观察 日志异常监控

三 跨版本升级策略

  • 阶梯式升级(推荐):按相邻版本逐级升级(如 8.x → 9.x → 10.x → 11.x),每一步都执行“备份 → 升级 → 清缓存 → 迁移 → 测试”,并严格对照各版本的 UPGRADE.md。此方式定位问题更容易、风险更低。
  • 迁移式升级(大跨度或结构复杂时):
    1. 创建目标版本的新项目:composer create-project laravel/laravel <新项目路径> <目标版本>
    2. 将旧项目的业务代码有选择地迁移到新项目(如 app/routes/config/ 中自定义部分、表单请求、策略、命令等);
    3. 对齐 composer.json 依赖与版本约束,执行 composer update
    4. 运行迁移 php artisan migrate
    5. 全面回归测试与性能验证。

四 升级后验证与常见问题

  • 必做验证:
    • 路由、表单、验证、授权、队列、邮件、通知、文件系统、第三方包功能回归;
    • 运行测试套件并补充关键场景的端到端测试
    • 检查 日志调度任务 是否正常。
  • 常见问题与处理:
    • 依赖冲突或不兼容:逐项回退冲突包版本,或等待其适配新 Laravel;必要时采用“迁移式升级”。
    • 配置/环境变量变化:对照 UPGRADE.md 调整 config/.env;清缓存后再测。
    • 目录权限:确保 storage/bootstrap/cacheWeb 服务用户(如 www-data) 可写。
    • 计划任务与队列:重启队列进程,确认 Horizon/Supervisor 配置与版本兼容。

五 运维与发布建议

  • 使用 Git 分支/标签 管理升级过程(如 upgrade/11.0),通过 CI/CD 在测试环境跑完测试再合并到生产分支。
  • 采用灰度/蓝绿发布回滚预案,最小化升级对用户的影响。
  • 生产前 做一次全量备份与演练,确保恢复流程可用。
  • 若升级幅度大或时间紧,可考虑 Laravel Shift 辅助减少手工改动量与风险。

0