【发布时间】:2021-08-20 01:29:00
【问题描述】:
简短版
Homestead 上的 Laravel 应用程序使用 PHP 8.x,如 phpinfo() 所示,但 php -v 声明服务器使用的是 7.1(这是我想要的)。这怎么可能?如何告诉 Laravel 应用程序使用 7.1 而不是 8.x?
长版
我有一个较旧的 Laravel 应用程序 (5.8),需要升级到 8.0。我可能正在使用 Shift 来执行此操作,但我从未手动进行过升级,所以我认为我应该至少执行一次。
所以我将 Homestead 升级到当前版本 (12.x),一切正常。
然后我尝试使用sudo update-alternatives --config php 将我的 PHP 版本从 7.1 升级到 8.0,并选择了 PHP。然后我用php -v 验证它切换到那个版本。正如预期的那样,我开始在浏览器中收到弃用错误。知道我必须花一些时间来解决那些我切换回 7.1 的问题......但错误仍然存在!
我重新启动了 PHP,我重新启动了服务器,我重新加载并重新配置了服务器,我销毁并重新配置了服务器,但绝对没有解决这个问题。我什至在 Homestead.yaml 文件中指定了 php: "7.1" 并重新配置无济于事。
此时看来,Homestead 本身的升级以某种方式告诉 PHP 忽略我指定它使用的版本。所以我知道我可以降级,我想,但这并不是一个真正的解决方案,而是一个创可贴。而且我也不确定这是否真的有效。
我已经尝试了 StackOverflows Change Laravel Homestead v7.0.1 with php 7.2 to php 7.1 中的答案,包括 php71。
操作系统:Windows 10 宅基地:12.x
这个人有一个相同的问题,并以某种方式用 Docker 解决了它,但我不明白如何将它翻译成 Homestead。
【问题讨论】: