На некоторых хостингах (в частности 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
Комментарии
Все верно это алиас в баш
спасибо!
На сервере две версии PHP? Так, разве, глобально не переключаются:
sudo update-alternatives --config php
Это работает только если использовались стандартные механизмы установки нескольких версий php пакетным менеджером. Не будет работать в разных панельках например. И конечно не будет на шеред хостингах.
Да, особенности шерд-хостингов и их "забавных консолей" не учел.
Инструкции к инструменту update-alternatives:
https://habr.com/ru/company/plesk/blog/306682/
https://linuxconfig.org/how-to-change-from-default-to-alternative-python...
В заметке речь в первую очередь про shared хостинги. Со своими серверами справиться гораздо проще