Composer报错requires php ^8.1本质是PHP版本低于包要求,解决需升级PHP或降级包(不推荐);须确认Composer实际调用的PHP版本,再按macOS、Linux、Windows不同环境升级并清理缓存。
Composer 报错 requires php ^8.1 或类似提示,本质是当前 PHP 版本低于目标包的 require 约束。解决方向只有两个:升级 PHP,或降级包(不推荐)。优先升级环境。
很多人误以为 php -v 显示的就是 Composer 调用的版本——其实不一定。Composer 会使用它启动时绑定的 PHP 解释器,可能来自系统 PATH、别名、或通过 php 命令查到的路径不一致。
which php 和 composer config --global --list | grep php 查看是否设置了 php 二进制路径php -r "echo PHP_VERSION;" 和 composer -v | head -1 对比版本号php /path/to/composer.phar install,则明确指定了 PHP 解释器,此时以该 php 为准Homebrew 默认只保留一个 php 符号链接(如指向 php@8.2),但旧版可能仍被激活。需手动切换并清理残留。
brew list | grep php(常见有 php@7.4、php@8.1、php@8.2 等)brew uninstall php@7.4
brew install php@8.2
brew unlink php && brew link php@8.2
php -v 和 which php 是否指向 /opt/homebrew/bin/php(Apple Silicon)或 /usr/local/bin/php(Intel)系统源里的 PHP 版本通常滞后,必须换源。Ondřej 的 PPA 是最稳定的选择,支持 7.4–8.3 各版本。
sudo apt install -y software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install -y php8.2 php8.2-cli php8.2-mbstring php8.2-xml php8.2-zip
php 命令指向 8.2:sudo update-alternatives --config php,选中 /usr/bin/php8.2
php -v 应输出 PHP 8.2.x;php -m | grep mbstring 确保扩展已加载libapache2-mod-php,需对应安装 libapache2-mod-php8.2 并重启服务Windows 下 Composer 往往调用的是 PATH 中第一个 php.exe,但 XAMPP/WAMP 自带的控制面板可能未同步更新 CLI 环境。
C:\php-8.2.12)移到 PATH 最前面where php
,确保只返回一条且是新路径;再运行 php -v
php.ini 中 extension_dir 和扩展是否匹配新版本,缺失的扩展(如 php_opcache.dll)需从同版本包中复制最常被忽略的是:即使 PHP 版本升上去了,Composer 缓存可能仍记录着旧版本兼容性判断。遇到升级后仍报错,先清缓存:composer clear-cache。另外,某些包强制要求 ext-gd 或 ext-intl,光升级 PHP 不开扩展也没用。