宅基地:如何升级PHP版本

时间:2018-06-29 11:15:07

标签: php laravel vagrant homestead

我一年前用Laravel 5.5安装了Homestead。

现在我想升级到Laravel 5.6。

我按照here的说明升级了Homestead,

vagrant box update
git pull origin master

这也迫使我也将vagrant升级到2.1.2

现在,当我登录时

vagrant ssh

我无法升级到Laravel 5.6,因为运行composer update时会收到以下警告:

  

使用软件包信息加载composer存储库更新   依赖项(包括require-dev)您的要求不能是   解决为一组可安装的软件包。

     

问题1       -此软件包需要php> = 7.1.3,但您的PHP版本(7.0.27;通过config.platform(实际:7.1.7)覆盖的软件包)不需要   满足那个要求。问题2       -laravel / framework v5.6.9需要php ^ 7.1.3->您的PHP版本(7.1.7-1 + ubuntu16.04.1 + deb.sury.org + 1)被覆盖   “ config.platform.php”版本(7.0.27)不满足要求   要求。

如果我在无业游民的机器中致电php -v,我会得到

  

PHP 7.1.7-1 + ubuntu16.04.1 + deb.sury.org + 1(cli)(内置:2017年7月7日09:41:45)(NTS)

这没关系,因为Laravel只需要PHP 7.1.3,但是升级却陷入困境,因为作曲家声称我正在使用PHP 7.0.27

那是为什么,我该如何解决?

我什至尝试

sudo apt-get update
sudo apt-get upgrade

如建议的here,但仍然无法正常工作。一些软件包已保留在升级中:

  

以下软件包已保留:libdrm-amdgpu1 libdrm2   libegl1-mesa libgbm1 libgd3 libgl1-mesa-dri libgl1-mesa-glx   libglapi-mesa libwayland-egl1-mesa mssql-tools open-vm-tools   php7.1-bcmath php7.1-cli php7.1-通用php7.1-curl php7.1-dev   php7.1-fpm php7.1-gd php7.1-imap php7.1-intl php7.1-json   php7.1-mbstring php7.1-mysql php7.1-opcache php7.1-pgsql   php7.1-readline php7.1-soap php7.1-sqlite3 php7.1-xml php7.1-zip 0   升级,0个新安装,0个要删除和30个未升级。

1 个答案:

答案 0 :(得分:2)

解决方案实际上是您的问题的一部分。如果我们再看看作曲家的错误:

  

问题1-此软件包需要php> = 7.1.3,但您的PHP版本(7.0.27;通过 config.platform [...]

覆盖了软件包

这意味着您在composer.json中确实有类似以下内容,需要在更新之前进行更改或删除:

"config": {
    "platform": {
        "php": "7.0.7"
    },
    "preferred-install": "dist",
    "optimize-autoloader": true
}

您可以将其更改为实际平台版本或完全删除它。它用于模拟环境,如果您想检查例如服务器上有除开发计算机以外的其他PHP版本时是否可以在服务器上运行composer install,该环境将非常方便。