Homestead:如何升级PHP版本
我在一年前安装了一个带有Laravel 5.5的宅基地 现在我想升级到Laravel 5.6 我对宅地进行了升级,如与 这也迫使我将我的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;
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::)哈哈,是的,但我看到很多人都会犯这样的“错误”,我只是想指出一下。