laravel - ElasticBeanstalk 的 EC2 实例未在终端/ssh 中检索 Laravel 应用程序的 Beanstalk 控制台中设置的 .env 变量
问题描述
我正在将 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。有什么问题,我该如何解决?
解决方案
该命令失败,因为它没有获取 Beanstalk 环境中设置的环境变量。
在Amazon Linux 2 (AL2) 上,EB 环境变量存储在/opt/elasticbeanstalk/deployment/env
. 因此,当您 ssh 到您的 EB 实例时,您可以使用以下内容来填充您的环境变量(需要 sudo 到 root firs):
sudo su
export $(cat /opt/elasticbeanstalk/deployment/env | xargs)
echo $YOU_ENV_NAME_FORM_EB
这是在 AL2 上执行此操作的未记录方式。
笔记:
env 变量不应该有空格。该文件也不是立即可用的。它在部署成功时创建。
推荐阅读
- android - 如何从 Cloud Firestore 制作可读的时间戳?
- python - 用多个变量替换熊猫中的多个列
- javascript - 可排序和新创建的内容
- java - 如何从 Android 中的 gridview 获取项目的背景颜色?
- sql - 使用复制语句插入现有表无效
- terraform - 如何在 terraform v0.12 上构造名称
- c++ - 将编写的类拆分为两个文件(C++)
- excel - 如果未找到值,则在 Excel 公式中添加空白字段
- expected-exception - 'return' 和 '}' (大括号)之前的预期表达式。我已尝试更改所有内容,但无法运行
- javascript - API 返回几个字符串转义