Homestead:如何升级PHP版本

Homestead:如何升级PHP版本,php,laravel,vagrant,homestead,Php,Laravel,Vagrant,Homestead,我在一年前安装了一个带有Laravel 5.5的宅基地 现在我想升级到Laravel 5.6 我对宅地进行了升级,如与 这也迫使我将我的vagrant升级到2.1.2 现在当我用 vagrant ssh 我无法升级到Laravel 5.6,因为当我运行composer update时,我收到以下警告: 使用包信息更新加载composer存储库 依赖项(包括require dev)无法满足您的需求 已解析为一组可安装的软件包 问题1 -此包要求php>=7.1.3,但您的php版本(7.0.27;

我在一年前安装了一个带有Laravel 5.5的宅基地

现在我想升级到Laravel 5.6

我对宅地进行了升级,如与

这也迫使我将我的
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只需要
PHP7.1.3
,但升级遇到了问题,因为composer声称我使用的是
PHP7.0.27

这是为什么?我该如何修复它

我甚至试过

sudo apt-get update
sudo apt-get upgrade
正如建议的那样,但它仍然不起作用。某些软件包已保留在升级中:

以下软件包已被保留:libdrm-amdgpu1 libdrm2 libegl1 mesa libgbm1 libgd3 libgl1 mesa dri libgl1 mesa glx libglapi mesa libwayland-egl1-mesa mssql工具开放虚拟机工具 php7.1-bcmath php7.1-cli php7.1-common 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个未升级


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

问题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
}

您可以将其更改为实际的平台版本,也可以将其删除。它用于模拟环境,如果您想检查是否可以在服务器上运行
composer install
,例如,当服务器的PHP版本不是您的开发机器时。

解决方案实际上是您问题的一部分请再次查看编写器错误:

问题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
}

您可以将其更改为实际的平台版本,也可以将其删除。它用于模拟环境,如果您想检查是否可以在服务器上运行
composer install
,例如,当服务器的PHP版本不是您的开发机器时。

只需删除
“平台”:{“PHP”:“7.0.7”     },
?我在回答中添加了一个解释,这可能会让您了解它的作用。因此,是的,请继续删除它或将其设置为新的PHP版本。这是问题的答案,但请注意,该平台变量可能是故意的。可能您的部署服务器只有PHP 7.0.7,因此您需要升级本地PHP版本ion在以后再次部署时肯定会产生完全相同的错误。@Loek好吧,那么他们不应该更新到Laravel 5.6.:)哈哈,是的,但是我看到太多人犯这样的“错误”,我只是想指出它。只要删除
“platform”:{“php”:“7.0.7”},
?我在回答中添加了一个解释,这可能会让您了解它的作用。因此,是的,请继续删除它或将其设置为新的PHP版本。这是问题的答案,但请注意,该平台变量可能是故意的。可能您的部署服务器只有PHP 7.0.7,因此您需要升级本地PHP版本当你以后再次部署时,ion肯定会产生完全相同的错误。@Loek好吧,那么他们不应该更新到Laravel 5.6::)哈哈,是的,但我看到很多人都会犯这样的“错误”,我只是想指出一下。