2016-03-15 2 views
0

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

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

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

Разборка Firebase отлично работает в командной строке при вводе ее вручную.

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

+0

Я думаю, что это имеет какое-то отношение к пользователю, который запускает скрипт? Я знаю, что вам нужно войти в CLI для firebase для развертывания файлов, может быть, это что-то связано с этим? – SH10151

+0

Итак, теперь у меня есть сценарий оболочки, который вызывает PHP, и я даже включил там токен Firebase, и он отлично работает, записывая вывод в файл журнала. Но этот сценарий оболочки просто отказывается работать при вызове с PHP. Проверяемые разрешения, исполняемый файл и т. Д. Очень расстраивает. Что мне не хватает? Я не могу поверить, что это нигде не документировано. Разве никто не автоматизирует их развертывания в колонии? – SH10151

ответ

0

После контакта 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!