Laravel/Homestead升级难题:Composer无法切换PHP版本?
Laravel升级PHP版本不匹配问题解决方案
核心问题原因
你在本地主机执行composer update时,调用的是本地CLI的PHP(7.4.9),和Homestead虚拟机内的PHP(8.0.9)是完全独立的两个环境。修改WAMP的PHP版本只影响本地网页服务,不会改变本地CLI的PHP版本,所以问题无法解决。
正确操作步骤
- 登录Homestead虚拟机:
- 打开终端(CMD、PowerShell或Git Bash均可),进入你的Homestead本地目录(例如
cd D:/Homestead) - 执行命令:
vagrant ssh,登录到虚拟机内部
- 打开终端(CMD、PowerShell或Git Bash均可),进入你的Homestead本地目录(例如
- 切换到项目目录:
在虚拟机内,项目默认挂载在/home/vagrant/code路径下,执行:cd /home/vagrant/code/你的项目文件夹名 - 执行Composer升级命令:
在虚拟机内运行:composer update,此时会使用虚拟机内的PHP 8.0.9,完全满足Laravel 9的版本要求
额外注意事项
- Homestead是独立的虚拟机环境,所有和项目依赖相关的Composer命令必须在虚拟机内执行,避免本地环境和虚拟机环境的依赖冲突
- 如果非要在本地执行CLI命令,可修改系统环境变量,将PHP 8.0的路径移到PATH环境变量最顶部,但不推荐这种做法,容易引发本地其他项目的版本兼容问题
- 检查Homestead.yaml配置文件,确认
php: "8.0"已正确设置,确保虚拟机内PHP版本符合要求
内容的提问来源于stack exchange,提问作者CoochieCook
相关产品推荐
相关产品推荐

