ThinkPHP 8 要求 PHP ≥ 8.0,低于该版本(如 7.4)无法安装或运行;composer create-project 失败主因是本地 php -v 版本不满足 "^8.0" 约束,且 mbstring、openssl 扩展未启用或 date.timezone 未配置也会导致后续启动异常。

ThinkPHP 8 要求 PHP 8.0 或更高版本,低于 8.0 的 PHP(如 7.4)无法安装或运行 TP8。
为什么 composer create-project topthink/think 会失败?
常见报错是 Your requirements could not be resolved to an installable set of packages,或者直接提示 topthink/framework v8.x requires php ^8.0。这不是网络或镜像问题,而是 Composer 在解析依赖时发现本地 php -v 返回的版本不满足 ^8.0 约束。
- TP8 的
composer.json明确声明"php": "^8.0",Composer 会严格校验运行时 PHP 版本 - 即使你用 PHP 7.4 成功执行了命令,也会在解包后因 autoload 或类语法(如联合类型、
mixed)报致命错误 -
php -v输出中只要主版本号不是8(例如7.4.33或8.1.27可以,7.4.33不行),就必然失败
php think run 启动前必须确认的三件事
即使 create-project 成功,php think run 仍可能报错退出,原因往往不在框架本身,而在 PHP 运行环境。
- 确保已启用
mbstring扩展:TP8 的字符串处理大量依赖它,未启用会触发Class 'mb_convert_encoding' not found - 确保已启用
openssl扩展:Composer 安装依赖、URL 生成、JWT 验证等都依赖它,禁用会导致请求失败或加密异常 - 检查
date.timezone是否在php.ini中设置,否则启动时可能抛出Warning: date(): It is not safe to rely on the system's timezone settings,虽不中断但影响日志和时间相关逻辑
Windows 下最简验证路径:从 php -v 到欢迎页
跳过集成环境(如 PHPStudy、XAMPP),直接用官方 PHP + Composer 是最快定位问题的方式。
立即学习“PHP免费学习笔记(深入)”;
- 下载
php-8.0.29-nts-Win32-vs16-x64.zip(或任意 8.0.x NTS 版),解压到C:\php8,路径不含空格和中文 - 将
C:\php8加入系统 PATH,新开命令行执行php -v→ 应输出PHP 8.0.x - 执行
php -m | findstr "mbstring openssl"(Windows)确认两个扩展已加载 - 运行
composer create-project topthink/think tp8,进入tp8目录,执行php think run - 浏览器访问
http://127.0.0.1:8000,看到 ThinkPHP 欢迎页即完成
最容易被忽略的是扩展启用状态——php -v 显示 8.0 并不等于能跑 TP8,php -m 才是真实运行能力的快照。



















