Linux下升级ThinkPHP需先备份、再更新、后验证;5.x升6.x属重大重构,须按官方指南迁移,同大版本内可用Composer升级;升级后必须检查配置、清缓存、测接口并处理数据库迁移。

Linux下升级ThinkPHP,核心是“先备份、再更新、后验证”,尤其要注意版本跨度带来的兼容性变化。ThinkPHP 5.x 升到 6.x 属于重大重构,不能只靠一条命令完成;而同大版本内(如 6.0.x → 6.3.x)则可安全走 Composer 流程。
确认当前版本与目标版本
进入项目根目录,执行以下任一命令查看当前框架版本:
- php think version(推荐,直接输出清晰)
- grep \"topthink/framework\" composer.json(查依赖声明)
- php -r \"echo THINK_VERSION ?? '未定义';\"(适用于老项目)
明确目标版本号(如 6.3.10 或 7.0.0-beta),并查阅对应官方升级指南,重点关注废弃类、中间件机制、配置结构等变动。
用 Composer 安全升级(主流方式)
适用于 ThinkPHP 5.1+ 且使用 Composer 管理依赖的项目。操作前确保已备份整个项目及数据库。
立即学习“PHP免费学习笔记(深入)”;
- 升级到最新稳定版:composer update topthink/framework
- 升级到指定版本(如 6.3.10):composer require topthink/framework:^6.3.10
- 若需同步刷新自动加载映射:composer dump-autoload --optimize
执行后检查 composer.lock 是否更新,以及 vendor/topthink/framework 目录内容是否已变更。
手动替换(仅限无 Composer 或特殊部署场景)
不推荐日常使用,但适用于离线环境或定制化打包部署。
- 从GitHub 官方仓库下载目标版本 ZIP 包
- 解压后,仅复制 thinkphp/ 目录(不含 app、public、config 等应用层目录)覆盖原项目中的同名目录
- 保留原项目的 app/、config/、runtime/ 和 public/ 等自定义内容
- 特别注意:TP6 起 think 命令入口已移至 thinkphp/tolk,需同步更新启动脚本
升级后必做事项
跳过这步极易引发线上故障:
- 检查 config/app.php 中的 default_timezone、debug、middleware 等项是否符合新版本要求
- 运行 php think clear 清除所有缓存,避免旧路由/模板规则残留
- 在开发环境执行 php think run 启动内置服务,逐个访问关键接口和页面
- 若有数据库迁移,运行 php think migrate:status 并按需执行 php think migrate:run



















