繁体   English   中英

如何使用外部 RDS 数据库在 AWS Elastic Beanstalk 中设置 Laravel 应用程序

[英]How to setup Laravel application in AWS Elastic Beanstalk using external RDS database

我想开始将我的 Laravel 应用程序部署到生产环境中。 为了避免在不久的将来更改 AWS 配置,我决定尝试添加持续集成。 为此,我使用了弹性 beanstalk,并使用另一个 AWS 工具将代码推送到那里。 所有这些都运行良好。 我在 /public/index.php 中放置了一条测试消息以输出“hello world”,并且在转到 URL 时它按预期工作。 当我删除此文本并正常运行 laravel 应用程序时,我收到 500 内部服务器错误。 我不确定弹性 beantalk 在部署 Laravel 应用程序时所做的一切。 因此,我不确定此错误是否是由于数据库连接错误或 Laravel 应用程序尚未完全设置所致。

我在弹性 beantalk 之外创建了一个 RDS 数据库实例。 我可以从 sequel pro 访问它,并添加了用于存储所有数据的数据库。 我将所有必要的数据库连接值(主机、端口、数据库、用户名、密码)添加到 /config/database.php 和 elastic beanstalk 服务器配置环境变量。

我已经在网上搜索了几天的信息,但没有找到任何特定于此的信息。 我的问题的另一部分是对在 beanstalk 中部署期间如何设置 laravel 缺乏了解。 /.ebextensions 有什么可以帮助我实现这些目标的吗?

当我部署我的代码时,我需要确保所有供应商文件都通过 Composer 安装,然后我还需要确保所有数据库迁移/更改都发生。 我想自动化尽可能多的步骤,这样我就可以推送代码更改,服务器将更改代码并继续工作。

我还想确保在设置数据库连接时没有遗漏任何东西。 我需要在 laravel 中设置任何其他文件或我需要配置的弹性 beantalk 中的其他文件吗? 我保持我的数据库对所有连接开放,然后我可以稍后收紧限制

编辑:我的数据库可能尚未正确配置,但这似乎不是问题的根源。 我认为我的问题是知道什么脚本以及如何在部署期间运行它们。 我想确保运行 composer 和 php artisan migrate 以使所有内容保持最新。 我怎样才能用弹性豆茎做到这一点?

这有点离题,但根据我的经验,我不建议使用 beanstalk 来实现良好的工作流推送和部署。 我建议您使用 Forgelaravel.com 来部署您的 GitHub 存储库。 在 Forge Laravel 中,您将能够从 AWS 创建一个服务器,它会自动创建数据库连接和东西,然后只需单击一下,您就可以部署到服务器并保持良好的工作流程。

鉴于我们说的是 Laravel 应用程序,这个 500 服务器错误

在此处输入图片说明

经常发生在创建新的基础设施时。 为什么? 很可能会忘记将环境变量添加到 EB 环境中。

只需转到那个EB环境配置,然后在软件修改下至少包括以下环境属性

  • APP_DEBUG (可以是,例如,false)
  • APP_KEY (这是使用php artisan key:generate
  • APP_NAME (蒂亚戈佩雷斯)

在此处输入图片说明

那么这个问题就不存在了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM