Экземпляры EC2 ElasticBeanstalk не получают переменные .env, установленные в консоли Beanstalk для приложения Laravel в терминале / ssh - PullRequest
0 голосов
/ 13 июля 2020

Я развертываю приложение Laravel на ElasticBeanstalk. Теперь я пытаюсь ввести S SH в экземпляр EC2 моей среды Beanstalk и запустить команду.

php artisan migrate --force

Но я не могу ее запустить. Команда не работает, потому что не получает переменные среды, установленные в среде Beanstalk. Вот что я сделал.

Я попал sh в экземпляр. Затем я go в папку / var / www/html. Затем я запускаю команду «php artisan migrate --force». Как я уже упоминал, он терпит неудачу, потому что он не получает учетные данные базы данных, установленные в среде Beanstalk. Тоже пробовал.

sudo -u root php artisan migrate --force

Произошло то же самое. Еще я поигрался с tinker в терминале. Когда я получаю имя приложения, например env ('APP_NAME'), оно возвращает null. В чем проблема и как ее исправить?

1 Ответ

2 голосов
/ 14 июля 2020

Команда не работает, потому что она не получает переменные среды, установленные в среде Beanstalk.

На Amazon Linux 2 (AL2) Переменные env EB хранятся в /opt/elasticbeanstalk/deployment/env. Таким образом, когда вы s sh в свой экземпляр EB, вы можете использовать следующее для заполнения ваших переменных env (необходимо sudo до root firs):

sudo su 
export $(cat /opt/elasticbeanstalk/deployment/env | xargs)
echo $YOU_ENV_NAME_FORM_EB 

Это недокументировано способ сделать это на AL2.

Примечание:

Переменные env не должны содержать пробелов . Также файл недоступен сразу . Он создается при успешном развертывании.

...