Вызов 'firebase deploy' из PHP через shell_exec() не работает

Я пытаюсь автоматизировать развертывание ресурсов хостинга с помощью Firebase с помощью PHP. Я пытаюсь вызвать «развертывание firebase» с помощью shell_exec() в PHP, но пока не могу заставить его работать. Выходные данные не возвращаются, и ничего не записывается в файл журнала, если я передаю вывод на один.

Есть ли способ автоматизировать развертывание Firebase с помощью PHP?

(интересное примечание: поскольку команду firebase нужно вызывать из фактического общедоступного каталога , который будет отправлен, я предполагаю, что мне нужно вызвать '/usr/local/bin/firebase deploy' и передать параметры каталога Firebase, который я хочу отправить, используя флаг -p. Это правильно или я могу полностью опустить -p?)

Развертывание Firebase отлично работает в командной строке, когда я ввожу его вручную.

Пожалуйста помоги!


person SH10151    schedule 15.03.2016    source источник
comment
Я думаю, это как-то связано с пользователем, который запускает скрипт? Я знаю, что вам нужно войти в CLI для Firebase, чтобы развернуть файлы, может быть, это как-то связано с этим?   -  person SH10151    schedule 16.03.2016
comment
Итак, теперь у меня есть сценарий оболочки, который вызывает PHP, и я даже включил туда токен Firebase, и он отлично развертывается, записывая выходные данные в файл журнала. Но этот сценарий оболочки просто отказывается работать при вызове из PHP. Проверил разрешения, он исполняемый и т.д. Очень расстраивает. Что мне не хватает?? Не могу поверить, что это нигде не задокументировано. Разве никто не автоматизирует развертывание своих firebase?   -  person SH10151    schedule 16.03.2016
comment
у меня не сработало exec('PATH=/usr/local/bin:$PATH && firebase deploy --only hosting:sitename', $output);   -  person Midhilaj    schedule 02.12.2020


Ответы (1)


После обращения к Firebase один из их замечательных разработчиков помог мне и предложил следующее, что сработало для меня:

<!DOCTYPE html>
<html>
<body>
<?php
exec('PATH=/usr/local/bin:$PATH && firebase deploy', $output);
print_r($output);
?>
</body>
</html>

Итак, благодаря поддержке Firebase, у меня все заработало. В основном это связано с Apache и веб-сессиями. Необходим $PATH:

Проблема связана с сеансом веб-сервера. При выполнении этих команд он обнаружил, что вывод «команда не найдена». Эта ошибка возвращается, когда $PATH не содержит пути к нужным командам (в данном случае firebase и node).

Чтобы исправить это, ему пришлось добавить этот путь в $PATH в текущем сеансе, чтобы можно было вызвать «развертывание firebase».

Еще раз спасибо, Firebase!

person SH10151    schedule 05.04.2016
comment
у меня не сработало exec('PATH=/usr/local/bin:$PATH && firebase deploy --only hosting:sitename', $output); - person Midhilaj; 02.12.2020