重装ThinkPHP项目环境需彻底清理并重建:先删vendor、composer.lock和runtime目录,移除application/等旧结构;再用composer create-project重建完整骨架;最后校准public根目录、.env配置及PHP版本一致性,并验证think命令、内置服务器与控制器生成功能。

重装 ThinkPHP 项目环境不是简单删 vendor 再 composer install,而是要从结构、配置、运行时三方面彻底清理并重建。核心原则是:先清空残留,再重建骨架,最后验证一致性。
彻底清理旧项目残留
很多问题源于缓存和旧配置未清除干净:
- 删除整个 vendor/ 目录和 composer.lock 文件(不要只删 vendor)
- 手动清空 runtime/ 全部子目录(cache、log、session、view),不能依赖命令行清理
- 检查并删除可能残留的 bootstrap.php、start.php 或自定义入口文件(TP6/8 已弃用)
- 确认项目根目录下没有遗留的 application/ 目录(TP6+ 已统一为 app/)
用 create-project 重建完整骨架
绝不能用 composer require topthink/think —— 它只装核心类库,不生成可运行结构:
- 在全新空目录中执行:
composer create-project topthink/think tp8 - 如需指定版本(例如 TP8.0),加后缀:
composer create-project topthink/think tp8@8.0 - 命令执行后,确保生成了完整的 app/、config/、public/、think 可执行脚本和 .env 文件
- 若原项目有自定义代码,仅迁移 app/ 下的控制器、模型、中间件等业务代码,勿直接覆盖
关键配置与路径重校准
重建后必须立刻核对三项硬性要求,否则必出 404 或 Class not found:
立即学习“PHP免费学习笔记(深入)”;
-
Web 服务器根目录必须指向
public/:Apache 的 DocumentRoot、Nginx 的 root 均设为/path/to/tp8/public,否则 .env 和 config/ 会被直接下载 -
.env 必须位于项目根目录(与 think 文件同级),取消注释
APP_DEBUG=true和数据库基础项(如DB_HOST=127.0.0.1),格式为键值对,非 PHP 数组 -
CLI 与 Web 使用同一 PHP 版本:运行
php -v和浏览器访问public/info.php(内容为<?php phpinfo(); ?>),确认版本号、Loaded Configuration File 路径完全一致
验证与收尾操作
完成重建后,按顺序验证是否真正就绪:
- 终端进入项目根目录,执行
php think version,应输出 ThinkPHP 8.x 或对应版本号 - 运行
php think run启动内置服务器,访问http://127.0.0.1:8000看是否显示默认欢迎页 - 执行
php think make:controller Test,确认命令能成功生成文件且无 “Command not defined” 报错 - 清空浏览器缓存,用无痕窗口访问首页,避免旧路由缓存干扰判断



















