laravel - ElasticBeanstalk 的 EC2 实例不会检索终端/ssh 中 Laravel 应用程序的 Beanstalk 控制台中设置的 .env 变量

标签 laravel amazon-web-services amazon-ec2 amazon-elastic-beanstalk

我正在将 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/

相关文章:

javascript - 在 laravel 中获取 ajax 发布的数据?

AWS 免费套餐中的 Hadoop?

python - 为 AWS Lambda 部署压缩虚拟环境时,我可以遗漏什么?

amazon-ec2 - 如何在 Amazon EC2 实例上允许 Socket IO 请求?

php - 使用此表结构将模型结构导入 Laravel?

Laravel 5 一次向多个用户发送邮件

php - Laravel Controller - 全局变量(字段)

amazon-web-services - 如何在 Terraform 中迭代 'count' 资源?

amazon-web-services - 多个触发的 AWS Lambda 日志显示在单个 Cloudwatch 日志流中

linux - 使用来自 NoMachine 的 'NX free edition for Linux' 在 Amazon EC2 上运行 Ubuntu 13.04/Linux mint 14