При запуске drush updb получаем ошибку версии PHP

ivnish 17 декабря 2021 в 12:26
5

На некоторых хостингах (в частности timeweb) версия PHP для консоли отличается от версии PHP для сайта. В частности для сайта установлена версия 7.4, а для консоли используется 7.1

Разработчики и владельцы сайтов, которые пользуются drush, знают, что можно указать версию PHP перед командой drush:

/opt/php74/bin/php vendor/bin/drush updb

До какой-то версии drush это прекрасно работало, а потом именно при запуске команды updb я стал получать ошибку слишком низкой версии PHP

Я отложил это вопрос до лучших времен, а сегодня проблема была решена.

Нужно в файл ~/.bashrc написать следующее (если этого файла нет, его нужно создать)

PATH=/opt/php74/bin:$PATH

Как узнать что писать? Путь к бинарнику PHP был таким /opt/php74/bin/php, значит путь к директории будет /opt/php74/bin. Вот его и пишем.

Запускаем bash -l или перезапускаем сессию SSH и проверяем. Теперь и

/opt/php74/bin/php vendor/bin/drush updb

работает и даже

vendor/bin/drush updb

Автор

ivnish Drupal FullStack Developer, модератор drupal.ru

Комментарии

Аватар пользователя nzytsprim nzytsprim 29 января в 20:48

На сервере две версии PHP? Так, разве, глобально не переключаются:
sudo update-alternatives --config php

Аватар пользователя bsyomov bsyomov 31 января в 15:12
1

Это работает только если использовались стандартные механизмы установки нескольких версий php пакетным менеджером. Не будет работать в разных панельках например. И конечно не будет на шеред хостингах.

Аватар пользователя ivnish ivnish 30 января в 9:22
1

В заметке речь в первую очередь про shared хостинги. Со своими серверами справиться гораздо проще