Laravel项目升级PHP 7.3到7.4,composer install报错如何解决
问题原因分析
该问题核心是项目目录下存在局部PHP版本配置,覆盖了全局的PHP 7.4设置,常见触发原因如下:
- 项目根目录存在
.php-version文件,指定了固定7.3版本(phpenv、Homebrew PHP版本管理器、Laravel Herd这类工具都会优先读取该配置) - 项目使用Docker/Valet等本地开发环境,单独为该项目绑定了7.3版本
- 终端Shell配置里针对该目录做了别名映射,把php命令指向了7.3的二进制文件
解决步骤
步骤1:排查局部版本配置文件
首先在项目根目录执行ls -la查看是否存在.php-version隐藏文件,如果存在直接修改文件内容为7.4,保存后重新打开终端进入项目目录执行php -v验证即可。
步骤2:调整开发环境的项目绑定配置
- 若使用Laravel Valet,在项目目录执行
valet use php@7.4即可将当前项目绑定到PHP 7.4 - 若使用Docker,修改项目
docker-compose.yml中php镜像的标签为7.4版本,之后执行docker-compose up -d --build重启容器生效 - 若使用Laravel Herd,打开Herd设置,在站点列表找到对应项目,PHP版本下拉选择7.4保存即可
步骤3:排查Shell的别名和PATH优先级
执行which php查看当前项目目录下php命令指向的二进制路径:
如果输出为7.3版本的路径,检查
~/.zshrc、~/.bashrc等Shell配置文件,是否存在针对该目录的php别名,或者7.3的二进制路径排序在7.4之前,调整后执行source ~/.zshrc(对应你实际使用的Shell配置文件)生效。
步骤4:强制Composer使用指定PHP版本运行(临时解决方案)
如果暂时不需要调整全局配置,可以直接用PHP 7.4的绝对路径执行composer命令,示例:/usr/bin/php7.4 /usr/local/bin/composer install
注意把路径替换成你本机PHP 7.4和composer的实际二进制路径
验证方法
配置完成后在项目目录执行php -v确认版本为7.4,再执行composer install即可正常安装依赖。
内容的提问来源于stack exchange,提问作者j.me
相关产品推荐
相关产品推荐

