ThinkPHP 6.x 必须用 composer create-project 创建完整项目骨架,因 topthink/think 是含 public/、think 脚本、autoload 配置及初始化逻辑的模板包;require 只引入框架核心,缺失结构和入口,必然报 Class 'think\App' not found 或 Command "run" is not defined。

ThinkPHP 6.x 项目不能靠 composer require topthink/think 局部引入,必须用 composer create-project 创建完整骨架——否则连 php think run 都执行失败,更别说加载 think\App 类。
为什么 create-project 是唯一可行方式
TP6 的 topthink/think 不是普通 Composer 包,而是项目模板(skeleton),自带 public/index.php、think 可执行脚本、自动加载配置和 post-create-project-cmd 初始化逻辑。手动 require 只会拉取 topthink/framework 核心,缺失入口、命令行工具和目录结构,必然报错 Class 'think\App' not found 或 Command "run" is not defined。
-
create-project会自动执行composer install、生成runtime/、写入基础.env(空内容)、设置 Git 初始化(如果本地有) - 不加版本号时默认拉取最新稳定版(当前为
v6.3.*),指定旧版必须写全,例如topthink/think:^6.1或topthink/think@v6.2.10 - 别用
--prefer-dist:TP6 的部分 stub 文件(如控制器模板)在 dist 包中被删减,会导致php think make:controller报错
安装前必须确认的环境条件
TP6 要求 PHP ≥ 7.2.5(推荐 7.4+ 或 8.x),且以下扩展必须启用:mbstring、openssl、pdo、json、curl。缺任一扩展,php think 会直接退出无提示。
- 运行
composer --version确认 Composer 可用;Windows 用户需检查是否加入系统 PATH,Linux/macOS 用户注意composer.phar是否有执行权限(chmod +x composer.phar) - 国内网络务必先切镜像源:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(旧镜像phpcomposer.com已停用) - 若提示
Could not find package topthink/think,先执行composer clear-cache,再重试
安装后三件立刻要做的事
骨架生成不等于项目可用。跳过任一环节,后续调试基本卡死:白屏、404、日志空白、数据库连不上。
立即学习“PHP免费学习笔记(深入)”;
- 确保
runtime/目录可写:Linux/macOS 执行chmod -R 755 runtime/;Windows 下需确认 IIS/Apache 运行账户对该目录有修改权限 - 编辑根目录下
.env,至少写入:APP_DEBUG = true、APP_ENV = local;数据库字段即使不用也得占位(如DATABASE_PASS =),否则框架解析报Undefined index: password - 用
php think run启动(不是php public/index.php),访问http://127.0.0.1:8000;若提示Permission denied,Linux/macOS 运行chmod +x think,Windows 检查think文件末尾换行符是否为\n(非\r\n)
常见错误与对应检查点
很多问题其实就差一步验证:比如 php think version 输出不是 v6.x.x,大概率是缓存了 TP5 的 think 命令;看到「The application is in maintenance mode.」却没报错,八成是 APP_DEBUG = false 没开。
-
Class 'think\Container' not found→ 没走create-project,而是复制了 GitHub 源码或手动require -
failed to open stream: No such file or directory(指向vendor/autoload.php)→ 安装中途中断,进入目录后手动执行一次composer install - 浏览器打开
public/index.php显示 404 或源码 → Web 服务器 root 没指向public/目录,或内置服务器没用php think run启动
最易被忽略的是 .env 编码:Windows 记事本保存必须选「UTF-8 无 BOM」,否则 php think 会静默退出;还有就是 think 脚本权限和 PHP CLI 版本——Web 环境的 PHP 版本 ≠ 命令行里的版本,php -v 和 php -c php.ini -v 得都对得上。



















