Ubuntu上Laravel版本升级步骤
一 升级前准备
- 备份与版本确认:备份项目文件与数据库(如:mysqldump -u 用户名 -p 数据库名 > backup.sql),确认当前 Laravel 版本(php artisan --version 或查看 composer.json 的 laravel/framework 版本)。
- PHP 与扩展:核对目标 Laravel 的 PHP 版本要求(如:Laravel 10 需 PHP 8.1+,Laravel 11 需 PHP 8.2+),使用 php -v 查看;安装必需扩展(如 mbstring、openssl、pdo_mysql、tokenizer、xml、gd、bcmath),用 php -m 检查,必要时在 php.ini 启用或重装扩展。
- Composer:升级到最新版(composer self-update),提升依赖解析准确性。
- 版本控制:使用 Git 创建升级分支(如:git checkout -b update-laravel-11),便于回滚。
- 阅读升级说明:逐版本查看项目根目录的 UPGRADE.md 与目标版本文档,提前识别破坏性变更。
二 小版本升级 9.x → 9.y
- 更新框架依赖:在项目根目录执行 composer update laravel/framework。
- 执行升级命令:运行 php artisan upgrade(Laravel 9+ 支持),自动处理部分配置与结构迁移。
- 测试验证:执行 php artisan test 或手动回归核心功能,确认无异常。
三 大版本升级 8.x → 9.x 或 9.x → 10.x
- 阶梯式升级:优先按版本路径逐步升级(如 8 → 9 → 10 → 11),避免一次性跨多版本。
- 合并官方骨架变更(可选,适用于结构差异较大的场景):
- 添加官方仓库源:git remote add laravel https://github.com/laravel/laravel.git
- 拉取目标版本代码:git pull laravel 9.x --no-ff --allow-unrelated-histories
- 手动解决合并冲突(重点关注 composer.json、配置文件),提交结果:git add . && git commit -am ‘升级到Laravel 9.x’
- 更新依赖与运行命令:
- 方式一(推荐):composer require laravel/framework:^9.0 --with-all-dependencies(同步更新相关依赖)
- 方式二:composer update laravel/framework
- 运行 php artisan upgrade 应用升级任务
- 数据库与缓存:执行 php artisan migrate;清理缓存(config:clear、cache:clear、view:clear、route:clear)。
四 升级后验证与常见问题
- 验证与运维:
- 运行 php artisan test 并回归关键业务(登录、表单、API、队列)。
- 查看 storage/logs/laravel.log 排查错误。
- 前端资源:执行 npm update 并重新构建(Vite/Mix)。
- 队列:重启队列进程(php artisan queue:restart)。
- 权限:确保 storage 与 bootstrap/cache 对 Web 服务用户(如 www-data)可写(如:sudo chown -R www-data:www-data /path/to/laravel/{storage,bootstrap/cache};sudo chmod -R 775 …)。
- Web 服务:确认 Nginx/Apache 正确指向 public 目录并重启服务。
- 常见问题处理:
- 依赖冲突:使用镜像源(如 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/)、清理缓存(composer clear-cache)、提高内存(如 php -d memory_limit=256M composer update),必要时手动调整 composer.json 版本约束后重试。
- 切勿用 laravel new --latest 覆盖现有项目(会新建而非升级),升级应基于 Composer 与 artisan 完成。