用 composer create-project 安装 ThinkPHP6 最稳妥,因它生成完整项目骨架(含 app/、public/index.php 等),避免手动 require 导致的 autoload 缺失、目录不全及 Class not found 错误。

直接说结论:用 composer create-project 安装 ThinkPHP6 最稳妥,别手动生成 composer.json 再 install —— 容易漏掉 autoload 配置或版本冲突。
为什么不用 composer require topthink/think?
这个命令只把核心包拉进 vendor,但不会生成 TP6 的项目骨架(比如 app/、public/index.php、think 命令脚本等)。你得自己补一堆目录和引导文件,稍有疏忽就报 Class 'think\App' not found 或 require(): Failed opening required 'base.php'。
- TP6 是「框架即项目」结构,必须从完整项目模板起步
-
topthink/think包本身不带入口文件和默认配置,不是独立可运行的项目 - 官方文档里所有命令(如
php think make:controller)都依赖项目级自动加载规则
composer create-project 的正确写法和参数含义
执行这行命令就能得到一个开箱可用的 TP6 项目:
composer create-project topthink/think tp6-demo
其中:
立即学习“PHP免费学习笔记(深入)”;
-
topthink/think是官方维护的项目模板包,不是单纯的库 -
tp6-demo是目标目录名,会自动创建并初始化 Git(如果本地有 Git) - 不加版本号时默认拉取最新稳定版(目前是
v6.3.*),要指定旧版得写全,比如v6.0.13 - 如果网络慢,可加
--prefer-dist强制用压缩包而非 Git 克隆
执行完后直接 cd tp6-demo && php think run 就能访问 http://127.0.0.1:8000,不需要额外配置 Web 服务器。
安装后立刻要检查的三件事
很多人跑起来就以为完事了,结果后续调试卡在环境或权限上:
- 确认
runtime/目录可写 —— 否则日志写不进、缓存生成失败,页面空白但无错误提示 - 检查
config/app.php中的debug是否为true,否则 500 错误只显示「The application is in maintenance mode.」 - 运行
php think version看输出是否为v6.x.x,避免因 Composer 缓存导致装了 TP5 的think命令
如果看到 Command "version" is not defined,说明 think 命令没注册进 autoload —— 大概率是没走 create-project,而是手动 require 的。
部署到生产环境时最常踩的坑
本地跑得好,上线 500,八成和这两点有关:
- Web 服务器文档根目录必须指向
public/,不是项目根目录;否则路由失效、.env文件可能被直接下载 -
.env里的APP_DEBUG=false和APP_ENV=production必须生效,否则错误信息暴露在页面上 - PHP 版本低于 7.2.5(TP6 最低要求)时,
composer install可能成功,但运行时报ParseError: syntax error, unexpected '?'—— 这是 PHP 7.1 不支持空合并运算符导致的
TP6 的自动加载机制高度依赖 Composer 的 autoload 配置和项目结构,任何试图「精简」或「重排目录」的操作,都会让 think 命令和门面类(如 Db、Cache)突然失联。










