thinkphp5.1安装需用composer create-project topthink/think tp5 --prefer-dist -n拉骨架,再composer require topthink/framework:^5.1 --update-with-dependencies锁定内核,验证php think version输出v5.1.xx。

composer create-project topthink/think 默认装的是 TP6,不是 TP5。想装 TP5,必须绕过这个陷阱——核心是用对包名、锁死版本、确认骨架结构。
为什么 create-project topthink/think 总是装错?
因为 topthink/think 这个包在 2021 年后已转向 TP6+,它的 composer.json 中 "topthink/framework" 依赖默认指向 ^6.0。即使你加了 =5.1.*,Composer 也会因约束冲突降级失败或静默跳过。
TP5.1 的实际稳定代码在 topthink/framework 包里,但该包不含 public/ 入口和命令行脚本,必须配合 topthink/think(TP5 分支)的项目骨架使用。
- 直接运行
composer create-project topthink/think tp5→ 得到 TP6 骨架,php think run报错或路由不生效 - 用
topthink/think=5.1.x-dev→ 可能拉到不稳定开发版,vendor/下缺失关键类 - 镜像没切回官方源(如
packagist.org)→ 旧版本^5.1根本搜不到
正确安装 TP5.1 的三步实操命令
以下命令在 PHP 7.1+、Composer 2.x 环境下验证通过,无需改配置、不碰 php.ini:
- 执行
composer create-project topthink/think tp5 --prefer-dist -n(先拉 TP5 骨架) - 进入目录:
cd tp5 - 强制切换框架内核:
composer require topthink/framework:^5.1 --update-with-dependencies
执行完检查 composer.json:里面 "topthink/framework" 的版本必须是 "^5.1",且没有 "dev-master" 或 "6.x" 字样。若看到 ^6.0,立刻删掉 vendor/ 和 composer.lock,重跑第三步。
验证是否真装的是 TP5 而不是 TP6
别只看首页显示“ThinkPHP”,要看真实行为:
- 运行
php think version→ 输出应为v5.1.xx,不是v6.x - 运行
php think route:list→ TP5 输出表格含method、route、address三列;TP6 多一列middleware且格式不同 - 访问
http://localhost:8000/index.php/hello→ TP5 默认带index.php前缀可访问;TP6 默认关闭index.php支持,会 404 - 检查
app/目录是否存在 → TP5.1 使用app/,TP6 用app/+app/common.php拆分逻辑
php think run 启动失败?重点查这三点
TP5.1.39+ 才内置 php think run,旧版会提示 Command "run" is not defined:
- 先确认框架版本:
php think version,低于5.1.39就别硬试run - 检查
think文件权限:Linux/macOS 下可能无执行权限,运行chmod +x think - 入口路径错位:TP5.1 默认
public/index.php中define('APP_PATH', __DIR__ . '/../app/');,若手动改过成../application/,会导致自动加载失败
最稳的启动方式始终是 php -S localhost:8000 -t public/,它不依赖框架命令,只验证 HTTP 层是否通。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











