Усадьба: Как обновить версию PHP - PullRequest
0 голосов
/ 29 июня 2018

Год назад я установил Усадьбу с Laravel 5.5.

Теперь я хочу перейти на Laravel 5.6.

Я обновил Хомстед, как объяснено здесь с

vagrant box update
git pull origin master

Это также заставило меня обновить vagrant до 2.1.2.

Теперь, когда я вхожу с

vagrant ssh

Я не могу перейти на Laravel 5.6, потому что когда я запускаю composer update, я получаю это предупреждение:

Загрузка репозиториев композитора с информацией о пакете Обновление зависимости (включая 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) (сборка: 7 июля 2017 г., 09:41:45) (NTS)

Что было бы хорошо, потому что Laravel требует только PHP 7.1.3, но обновление застревает, потому что композитор утверждает, что я использую PHP 7.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-tools open-vm-tools 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 не обновлено.

1 Ответ

0 голосов
/ 29 июня 2018

Решение на самом деле является частью вашего вопроса. Если мы еще раз посмотрим на ошибку композитора:

Проблема 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, чем ваша машина разработки.

...