不加版本约束的composer create-project topthink/think会失败,因TP6已进入维护期,Composer默认不再优先匹配6.x分支,可能拉取TP7预发布版(dev-main)或TP5旧分支,导致Class not found、目录结构错乱或直接报错;正确命令是composer create-project "topthink/think:^6.1"。

不加版本约束的 composer create-project topthink/think 基本上装不出来可用的 TP6 —— 不是拉到 TP7 预发布版,就是回退到 TP5 旧分支,甚至直接报错中断。
为什么 composer create-project topthink/think 会失败
TP6 已进入维护期,Composer 默认行为已不再优先匹配 6.x 分支。不显式指定版本时,实际可能命中:
-
dev-main(TP7 预发布版)→ 报Class 'think\App' not found -
5.1.x或废弃标签 → 目录结构、入口文件、命名空间全对不上 - 本地缓存污染或镜像源失效 → 报
Could not find package topthink/think
composer create-project 的正确写法和参数差异
唯一稳定、可复现的命令是带引号 + 显式版本范围:
- 必须用双引号包裹包名和版本:
composer create-project "topthink/think:^6.1" tp6 -
^6.1是当前(2026 年 5 月)TP6 最新稳定范围;6.0.*在 Composer 2.5+ 中已被弃用 - Windows CMD 下不加引号会导致
^被解析为命令控制符,直接报语法错误 - 不能用
composer require topthink/think—— TP6 不支持手动引入,骨架必须由create-project初始化
安装前必须做的三件事
否则大概率卡在「命令执行成功但项目跑不起来」:
立即学习“PHP免费学习笔记(深入)”;
- 清 Composer 缓存:
composer clear-cache - 切国内镜像(阿里云已替代 phpcomposer):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 确认 PHP ≥ 7.2.5 且启用
mbstring、openssl、pdo、json扩展(缺任一都可能静默失败)
安装后必须检查的三件事
成功执行命令只是第一步,以下三项缺一不可:
-
public/index.php必须存在 —— 缺失说明下载中断或解压失败 -
vendor/autoload.php必须可读 —— 若报failed to open stream,进目录手动跑一次composer install -
runtime/目录需写权限:Linux/macOS 下用chmod -R 755 runtime(不是777),Windows 下确保 IIS/Apache 用户有写入权
Web 服务器根目录必须指向 public/,而非项目根目录;否则 .env 和敏感配置将直接暴露。这点最容易被忽略,而且一旦配错,连调试日志都看不到。



















