I am deploying a Laravel application to the ElasticBeanstalk. Now, I am trying to SSH into the EC2 instance of my Beanstalk environment and run a command.
php artisan migrate --force
But I cannot run it. The command is failing because it is not getting the environment variables set in the Beanstalk Environment. Here is what I did.
I ssh into the instance. Then I go to the /var/www/html folder. Then I run the "php artisan migrate --force" command. As I mentioned it is failing because it is not getting the database credentials set in the Beanstalk environment. I also tried this.
sudo -u root php artisan migrate --force
The same thing happened. I also played around with tinker in the terminal. When I retrieve the app name like env('APP_NAME'), it is returning null. What is the issue and how can I fix it?
The command is failing because it is not getting the environment variables set in the Beanstalk Environment.
On Amazon Linux 2 (AL2), the EB env variables are stored in /opt/elasticbeanstalk/deployment/env
. Thus when you ssh to your EB instance, you can use the following to populate your env variables (need to sudo to root firs):
sudo su
export $(cat /opt/elasticbeanstalk/deployment/env | xargs)
echo $YOU_ENV_NAME_FORM_EB
This is undocumented way of doing this on AL2.
Note:
The env variables shouldn't have spaces. Also the file is not immediately available. It gets created when deployment succeeds.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With