温馨提示×

centos laravel版本升级注意事项

小樊
45
2025-12-09 12:47:22
栏目: 智能运维

CentOS 上升级 Laravel 的关键注意事项

一 升级前准备

  • 完整备份:代码与数据库都要备份,建议同时保留一份可快速回滚的代码 tag/分支数据库 dump。示例:cp -r /var/www/laravel /backup/laravel_$(date +%F)mysqldump -u USER -p DB > /backup/db_$(date +%F).sql
  • 环境隔离:先在开发/预发布环境完成升级与回归,再同步到生产。
  • 升级路线:跨大版本(如 5.8 → 6.x → 7.x → 8.x → 9.x → 10.x → 11.x)务必逐级升级,不要跨多版本一次性升级。
  • 工具与 PHP:确保 Composer 为最新(composer self-update),并确认目标 Laravel 版本所需的 PHP 版本与扩展已满足。
  • 依赖清单:导出当前依赖锁文件(composer.lockcomposer.jsonrequire/require-dev),便于回滚与比对。
  • 文档先行:阅读目标版本的官方升级指南,列出破坏性变更与弃用项。

二 升级过程要点

  • 版本确认:在项目根目录查看当前框架版本,例如 composer show laravel/frameworkphp artisan --version
  • 指定版本:优先使用显式版本约束升级框架,例如 composer require laravel/framework:^8.0laravel/framework:8.1.*;如需跨小版本,可先小步升级再继续。
  • 依赖更新:按需执行 composer update,避免一次性全量更新导致问题难以定位;对关键第三方包先评估兼容性与升级顺序。
  • 配置与目录:如升级涉及骨架变更,按官方指引合并新增/变更配置文件,并保留自有配置;必要时执行 php artisan storage:link 等发布命令。
  • 数据库变更:执行 php artisan migrate 应用迁移;如引入新特性或数据结构变化,按需运行 php artisan db:seed 或指定填充类。
  • 缓存策略:升级后先清理再重建缓存,避免旧配置/路由/视图缓存影响验证,例如 php artisan config:clear && php artisan cache:clear && php artisan view:clear && php artisan route:clear

三 升级后验证与回滚

  • 功能回归:重点覆盖认证/授权、队列、邮件、文件上传、第三方 API、定时任务等关键路径。
  • 日志与错误:检查 storage/logs/laravel.log 是否有新版本引入的异常或弃用警告。
  • 性能与优化:确认页面与接口性能未退化;必要时执行 php artisan config:cachephp artisan route:cachephp artisan view:cache 再压测。
  • 回滚预案:若出现异常,优先回滚到升级前代码 tag/分支数据库备份;或调整 composer.jsonlaravel/framework 版本约束后执行 composer update 恢复。

四 CentOS 与运维相关注意

  • SELinux:如启用 SELinux,确保 httpd/php-fpm 对相关目录(如 storagebootstrap/cache)有正确上下文,必要时执行:semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/laravel/storage(/.*)?" && restorecon -R /var/www/laravel/storage
  • 文件权限:Web 服务运行用户对项目目录需具备读写执行权限,常见做法:chown -R apache:apache /var/www/laravel && chmod -R 755 /var/www/laravel && chmod -R 775 storage bootstrap/cache
  • PHP 与扩展:核对 php -v 与目标版本一致;常见必需扩展包括 mbstring、openssl、pdo、tokenizer、xml、ctype、json、bcmath、fileinfo 等。
  • OPcache 与 FPM:升级后重启 PHP-FPM 与 Web 服务(如 systemctl restart php-fpm && systemctl restart httpd),避免旧字节码缓存影响。
  • Composer 权限:生产环境避免使用 root 运行 Composer,建议专用部署用户并配置好 ~/.composer 与全局缓存目录权限。

以上要点覆盖了备份与环境、版本与依赖、数据库与缓存、系统权限与运维等关键环节,可显著降低升级风险并提升成功率。

0