确认ThinkPHP 5.1.x的唯一可靠方式是:运行composer show topthink/framework查看版本是否为5.1.x,或检查composer.json中"topthink/framework"的版本约束是否为"^5.1"或"5.1.*"(非"^5"或"^6.0")。

ThinkPHP 5.1+ 已不再提供直接下载包,必须用 composer 安装和更新;如果你执行 composer create-project topthink/think=5.1.* 却卡住、报错或装出非 5.1 版本,大概率是镜像失效、版本约束写错,或没切对项目根目录。
如何确认当前安装的是 ThinkPHP 5.1.x
别只看目录名或文件夹时间。真正有效的判断方式只有两个:
- 运行
composer show topthink/framework,输出中versions显示类似5.1.42或v5.1.39才算数 - 打开项目根目录下的
composer.json,检查"topthink/framework"行的版本号是否为"^5.1.0"或"5.1.*"—— 注意不是"5.*"(那会装 5.0)或"^6.0"(那是 TP6) - 如果
php think version报错或输出空,说明命令行工具未加载成功,先检查think文件是否存在且可执行
安装时指定 5.1 最新版的正确命令
官方已停止维护 dev-master 分支,也不推荐用 =5.1.x-dev 这类模糊写法。稳定做法是:
- 在空白目录下运行:
composer create-project topthink/think=5.1.* tp5(tp5是项目名,可改) - 若国内慢,先切镜像:
composer config -g repo.packagist composer https://packagist.laravel-china.org - 如果提示
No composer.json,输入Y即可,不用手动建文件 - 装完立刻进项目目录,再跑一次
composer update topthink/framework,确保拉到 5.1 分支的最新补丁版(如 5.1.42)
更新已有 TP5.1 项目的常见错误
很多人在项目根目录下执行 composer update 后发现框架没变,甚至升到了 TP6 —— 根本原因是没锁定范围:
立即学习“PHP免费学习笔记(深入)”;
- 错误操作:
composer update(全量更新,可能把topthink/framework升到 6.x) - 正确操作:
composer update topthink/framework(只更新框架本体) - 更稳妥操作:
composer update topthink/framework --with-dependencies(连带更新其强依赖,比如topthink/think-migration若装了) - 若想锁死在 5.1.x,编辑
composer.json中该行:把"^5.1"改成"5.1.*",再执行 update - 执行后务必检查
vendor/topthink/framework/src/Env.php里THINK_VERSION常量值,它比命令行输出更真实
为什么 php think run 启动失败或 404
这不是安装命令的问题,而是环境或路径误判导致的典型假性“更新失败”:
-
php think run必须在项目根目录(含think文件和app/目录的那层)执行,不是public/下 - PHP 版本低于 5.6 会直接报错,用
php -v确认;Windows 用户注意 PATH 是否指向新版 PHP - Apache/Nginx 没配好伪静态,会导致访问
/index.php/xxx正常但/xxx404 —— 这和 composer 更新无关,纯服务器配置问题 - 如果
public/下没有index.php或它被删改过,php think run也起不来,此时应重新composer install或手动恢复public/
真正容易被忽略的点是:TP5.1 的 composer.json 里 require 字段一旦写成 "topthink/framework": "^5",下次 update 就可能跨大版本;而很多人只改了命令没改配置,结果表面装的是 5.1,实际运行时加载的是 6.x 的自动加载逻辑 —— 这种隐性不兼容比报错更难排查。



















