laravel要求php版本≥8.1.0(laravel 10+),若php -v显示版本低于该值或where php指向旧路径,则composer报错准确;需修正path、重装composer并确保扩展匹配。

直接看 php -v 输出的版本号,如果低于 Laravel 当前要求(Laravel 8+ 要求 ≥7.3.0,Laravel 10+ 要求 ≥8.1.0),那报错就是准确的——不是 Composer 或 Laravel 在“挑刺”,而是它真没法运行。
确认当前命令行实际调用的 PHP 版本
很多人装了新版 PHP(比如用 PHPStudy 切到 8.2),但 composer install 仍报旧版错误,问题出在系统没走对 PHP 可执行文件。Windows 尤其常见:PATH 环境变量里还残留着旧版 php.exe 的路径(如 C:\php56\),而新版本(如 D:\phpstudy_pro\Extensions\php\php82_0\)没加进去或顺序靠后。
执行以下命令验证:
-
where php(Windows)或which php(macOS/Linux)——看返回的是哪个路径 -
php -v—— 确认该路径下实际版本 -
composer show php—— 查 Composer 自己识别的 PHP 平台信息(它可能缓存旧值)
如果 where php 指向旧路径,就去「系统属性 → 高级 → 环境变量」里修改 PATH,把新版 PHP 的 ext 目录(不是 php.exe 所在目录,是它上一级带 php82_0 这种名字的目录)置顶,并重启终端或 PhpStorm 终端面板。
PHPStudy / XAMPP 用户必须重装 Composer
Composer 安装时会硬绑定当时选中的 PHP 路径。哪怕你后来在 PHPStudy 里切换了版本,composer 命令本身仍会调用安装时记下的那个旧 php.exe。这不是配置问题,是二进制层面的硬编码。
解决方式只有一条路:
- 卸载当前 Composer(删掉
composer.phar和composer.bat,或重装官方 installer) - 确保
where php已指向新版 PHP - 重新运行 Composer 官方 installer,安装过程中手动指定新版 PHP 的
php.exe路径(Windows GUI 安装器第二步会弹窗让你选)
跳过这步,--ignore-platform-reqs 只能绕过检查,但后续 php artisan 命令大概率直接崩溃——因为底层扩展(如 mbstring)版本或 ABI 不匹配。
Linux/macOS 下用包管理器升级 PHP 后要重装扩展
比如 Ubuntu 用 sudo apt install php8.2 装了新版,但 php -m 里看不到 mbstring 或 pdo_mysql?那是因为扩展包名和 PHP 主版本强绑定。
必须显式安装对应版本的扩展:
- Ubuntu/Debian:
sudo apt install php8.2-mbstring php8.2-pdo php8.2-xml php8.2-zip php8.2-bcmath - macOS(Homebrew):
brew install php@8.2后,还要echo 'export PATH="/opt/homebrew/opt/php@8.2/bin:$PATH"' >> ~/.zshrc并重载 shell - 别忘了重启
php-fpm或 Apache:sudo systemctl restart php8.2-fpm
漏装任一扩展,laravel new 或 composer create-project 都会在中途报 “The following PHP extensions are required but are not installed”。
临时绕过但不推荐的方案:--ignore-platform-reqs
仅限调试或离线环境应急,不能用于正式开发或部署:
-
composer install --ignore-platform-reqs:跳过 PHP 版本和扩展检查 composer create-project laravel/laravel myapp --ignore-platform-reqs
风险很明确:Laravel 的某些特性(如 PHP 8.1+ 的枚举、8.2 的只读类)在低版本 PHP 上根本无法解析,报错会从 “版本不够” 升级为 “syntax error, unexpected token” 这类致命解析错误。而且 .env 文件生成、artisan 命令执行等后续环节仍会失败。
真正卡住的地方往往不是“怎么升版本”,而是“升了之后命令行还在调旧二进制”。盯住 where php 和 composer show php 的输出是否一致,比盲目换镜像或加参数管用得多。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











