Запуск команды gcloud в php не работает - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь запустить команды оболочки из PHP, используя

 <?PHP

 $output = shell_exec('gcloud --version'." 2>&1");
 echo "$output";

 ?>

Результат, который я получаю:

sh: 1: gcloud: not found

Когда я пытаюсь сделать

 shell_exec('ls -l')

Работает как положено. У меня есть связанные сообщения на StackOverflow, чтобы вместо этого использовать Rest API. Но я создал большой скрипт с командами gcloud. Я запускаю свои сценарии оболочки в Терминале в ma c. Может ли кто-нибудь помочь мне разобраться в проблеме. Может потребоваться установить sdk, попробовал, проблема все еще была.

1 Ответ

0 голосов
/ 11 июля 2020

Вам нужно прочитать Relative Path vs Absolute Path файла / каталога.

Когда вы кодируете shell_exec('gcloud --version'..., вы используете relative path. Один из способов решить вашу проблему - указать команду от absolute path до gcloud, которую можно определить из командной строки bash, набрав: which gcloud, и вы можете получить результат типа /usr/lib/google-cloud-sdk/bin/gcloud

Затем измените свой код PHP на shell_exec('/usr/lib/google-cloud-sdk/bin/gcloud --version'...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...