我正在将 Laravel 应用程序部署到 ElasticBeanstalk。现在,我尝试通过 SSH 连接到 Beanstalk 环境的 EC2 实例并运行命令。
php artisan migrate --force
但我不能运行它。该命令失败,因为它没有获取在 Beanstalk 环境中设置的环境变量。这是我所做的。我通过 ssh 进入实例。然后我转到/var/www/html 文件夹。然后我运行“php artisan migrate --force”命令。正如我所提到的,它失败了,因为它没有获取在 Beanstalk 环境中设置的数据库凭据。我也试过这个。
sudo -u root php artisan migrate --force
同样的事情发生了。我还在终端玩弄修补匠。当我检索像 env('APP_NAME') 这样的应用程序名称时,它返回 null。这是什么问题,我该如何解决?
最佳答案
The command is failing because it is not getting the environment variables set in the Beanstalk Environment.
上 亚马逊 Linux 2 (AL2),EB 环境变量存储在
/opt/elasticbeanstalk/deployment/env
.因此,当您通过 ssh 连接到您的 EB 实例时,您可以使用以下内容来填充您的 env 变量(需要 sudo 到 root firs):sudo su
export $(cat /opt/elasticbeanstalk/deployment/env | xargs)
echo $YOU_ENV_NAME_FORM_EB
这是无证在 AL2 上执行此操作的方法。笔记:
env 变量不应该有 空格 .该文件也是 不立即可用 .它在部署成功时被创建。
关于laravel - ElasticBeanstalk 的 EC2 实例不会检索终端/ssh 中 Laravel 应用程序的 Beanstalk 控制台中设置的 .env 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62881140/