Запуск команды терминала через S SH с PHP вернуть другую версию? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть приложение, опубликованное на сервере, и

I s sh на машине, cd в домашний каталог и запуск

php -v, затем я получил PHP 7.4.5 (cli) (built: Apr 18 2020 01:11:34) ( NTS )

Если я запустил ту же команду над S SH

ssh MY_USER@SERVER_IP "php -v", то у меня будет PHP 5.6.22-2 (cli)

Я пытаюсь запустить composer install удаленно, но он не работает из-за версии php.

Я бы хотел запустить команду с php 7.4, конечно.

Есть какие-нибудь подсказки?

Спасибо

Пс. Если я запустил whoami, я получу того же пользователя.

1 Ответ

0 голосов
/ 06 мая 2020

Поскольку вы можете проверить, откуда запущен php cli с помощью команды whereis, вы можете сделать то же самое и для composer. Команда where is возвращается с путями скриптов.

Итак, когда вы скажете whereis php, вы увидите что-то вроде этого в качестве ответа:

php: /usr/bin/php /usr/share/php /usr/local/php7/bin/php

Если вы хотите использовать php 7.4.5, то вам нужно просто выяснить, где находится путь php 7.4.5. Для этого вы можете ввести sh на машине cd в домашний каталог и выполнить whereis php. Тогда вы получите местоположение, которое вы можете использовать и с другой командой.

Теперь нам нужно знать, откуда composer запускается:

whereis composer
composer: /usr/bin/composer

Наконец, мы можем выполнить желаемое , которая является одним из путей сценария php и пути сценария composer. Например:

/usr/bin/php /usr/bin/composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.10.5 2020-04-10 11:44:22

Usage:
  command [options] [arguments]

Вот и все.

...