Ошибка при использовании процесса Symfony / exec / shell_exec для запуска gcloud compute ssh - PullRequest
0 голосов
/ 24 сентября 2018

Мне нужно выполнить команду gcloud coumpute ssh - через php (позже я проверю безопасность).

Использую ли я exec, shell_exec или Symfony Process, команда вылетает:

Пример с процессом Symfony (то же самое относится и к exec или shell_exec), простая команда ls, используемая для тестирования:

$process = new Process("/path/to/google-cloud-sdk/bin/gcloud compute ssh my-instance --command='ls' ");
$process->run();
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}
echo $process->getOutput();

if (!$process->isSuccessful()) {

}

Я получаю следующую ошибку:

gcloudcrashed (AttributeError): у объекта 'NoneType' нет атрибута 'split'

Обратите внимание, что та же команда, скопированная и вставленная непосредственно в CLI, работает отлично.

Любая подсказка, пожалуйста

1 Ответ

0 голосов
/ 26 сентября 2018

Вот объяснение того, что происходит, $ _ENV на самом деле не устанавливает переменную среды, то есть переменная не будет распространяться ни на какие дочерние процессы, которые вы запускаете (кроме разветвленных процессов сценария, в этом случае это просто переменная в памяти сценария).) Это объяснили Здесь .

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