Composer & Plesk, столкнувшись с трудностями в версии PHP - PullRequest
0 голосов
/ 01 мая 2018

В настоящее время я пытаюсь запустить приложение Laravel за Plesk Onyx. Теперь при попытке запустить composer install я получаю следующие сообщения об ошибках:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for doctrine/inflector v1.3.0 -> satisfiable by doctrine/inflector[v1.3.0].
    - doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
  Problem 2
    - Installation request for symfony/css-selector v4.0.6 -> satisfiable by symfony/css-selector[v4.0.6].
    - symfony/css-selector v4.0.6 requires php ^7.1.3 -> your PHP version (7.0.27) does not satisfy that requirement.
  Problem 3
    - Installation request for symfony/event-dispatcher v4.0.6 -> satisfiable by symfony/event-dispatcher[v4.0.6].
    - symfony/event-dispatcher v4.0.6 requires php ^7.1.3 -> your PHP version (7.0.27) does not satisfy that requirement.
  Problem 4
    - Installation request for symfony/translation v4.0.6 -> satisfiable by symfony/translation[v4.0.6].
    - symfony/translation v4.0.6 requires php ^7.1.3 -> your PHP version (7.0.27) does not satisfy that requirement.
  Problem 5
    - Installation request for doctrine/instantiator 1.1.0 -> satisfiable by doctrine/instantiator[1.1.0].
    - doctrine/instantiator 1.1.0 requires php ^7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
  Problem 6
    - doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.27) does not satisfy that requirement.
    - laravel/framework v5.5.39 requires doctrine/inflector ~1.1 -> satisfiable by doctrine/inflector[v1.3.0].
    - Installation request for laravel/framework v5.5.39 -> satisfiable by laravel/framework[v5.5.39].

OK. Я точно понимаю ошибки. Я запускаю Debian 9, и "PHP от поставщика ОС" - 7.0.27. Однако я знаю, что на сервере установлен PHP 7.1+ (и даже 7.2), потому что Plesk позволил мне выбрать (для доменов и vhosts) эти версии. Теперь у меня вопрос: как я могу сказать composer использовать определенную версию PHP, установленную на сервере, и как это может работать в Debian с Plesk?

Редактировать: я не установил Composer глобально. Просто https://getcomposer.org/download/ «Установка из командной строки».

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Вы можете использовать platform в composer.json для эмуляции версии PHP:

"config": {
    "platform": {
        "php": "7.1"
    }
},

Composer будет предполагать, что версия PHP - 7.1 во время установки и обновления, даже если вы используете 7.0 для фактической установки.

Это повлияет только на установку и обновление Composer - если вы хотите запускать консольные команды вашего приложения, вам нужно будет использовать правильный двоичный файл (то же самое для веб-сервера). Однако установка этого параметра сделает ваши установки и обновления Composer более предсказуемыми, поэтому в любом случае это стоит сделать.

0 голосов
/ 01 мая 2018

Вот как:

Найдите пути PHP, используемые Plesk. В моем случае это /opt/plesk/php/. Внутри этой папки находятся папки в соответствии с установленными версиями PHP: 7.0, 7.1, 7.2. Так что php composer.phar install становится /opt/plesk/php/7.2/bin/php composer.phar install. & оно работает. : -)

...