В настоящее время я пытаюсь запустить мое приложение 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].
ОК. Я точно понимаю ошибки. Я запускаю Debian 9, а "PHP от поставщика ОС" - 7.0.27
. Однако я знаю, что на сервере установлен PHP 7.1+ (и даже 7.2), потому что Plesk позволил мне выбрать (для доменов и vhosts) эти версии. У меня вопрос: как я могу указать композитору использовать определенную версию PHP, установленную на сервере, и как это может работать в Debian с Plesk?
Обновлено: я не устанавливал Composer глобально. Просто https://getcomposer.org/download/ "Установка из командной строки".
Вот как:
Найдите пути 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
. & оно работает. :-)
Вы можете использовать настройку platform
в composer.json
для эмуляции версии PHP:
"config": {
"platform": {
"php": "7.1"
}
},
Composer будет предполагать, что версия PHP - 7.1 во время установки и обновления, даже если вы используете 7.0 для фактической установки.
Это повлияет только на установку и обновление Composer - если вы хотите запускать консольные команды своего приложения, вам нужно будет использовать правильный двоичный файл (то же самое для веб-сервера). Однако установка этого параметра сделает установку и обновления вашего Composer более предсказуемыми, так что в любом случае это стоит сделать.