在AWS Elastic Beanstalk上部署Laravel 4应用程序

时间:2013-08-04 07:29:36

标签: php amazon-web-services laravel laravel-4 elastic-beanstalk

我在Laravel 4中开发了一个应用程序 - 在我的本地机器上完美地运行,具有通常/典型的laravel设置(此处没有任何异常)。

我现在想要将应用程序部署到AWS Elastic Beanstalk(可能在安装了php 5.4的典型Linux 64位服务器上)

我的问题是:我是否需要对文件进行任何更改才能使应用程序为部署做好准备?

例如,我是否需要创建任何配置文件等? (我在这里阅读了某种app / config / elastic文件:http:://darrennolan.com/2013/02/02/php-aws-elastic-beanstalk-rds-laravel-4-with-migrations-on-updates/

我以前从未部署过,所以请尽量详细说明。

2 个答案:

答案 0 :(得分:18)

要回答有关L4应用配置的问题,您一定会发现这些帖子很有用:

L4 cloud deployment problems
Laravel and Elastic Beanstalk

AWS Environment config
根据你关于“某种/ app / config / elsatic”的问题 - Laravel能够根据运行的环境“加载”不同的配置。你可以设置包含配置文件的不同子文件夹,例如用于测试服务器和生产服务器。这样,您可以安全地在两个服务器之间复制文件,而不必在每次同步文件时更改例如数据库凭证或基本路径。因此,在您链接的文章中,建议为AWS环境创建一个子文件夹,以便您可以拥有一组自定义配置,如果您在AWS上运行该应用程序,这些配置将会激活。

如何在AWS上部署Laravel 4应用
在这里你有一个简短的指示。我遇到的指令(但还没有时间测试它)如下,但仍然首先阅读上述帖子。谢谢/道具/荣誉以下步骤转到codenamegary from the Laravel forum


在您的计算机上安装AWS Command Line Tool
http://aws.amazon.com/code/6752709412171743
- 需要红宝石和其他一些东西

EC2 - 设置安全组
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
- 在EC2下创建一个新的安全组
- 命名约定是你想要的任何东西,通常我尝试使用像...这样的东西     “应用环境-EB”
- 例如,对于生产环境中名为“博客”的应用程序,我将其称为“blog-production-eb”,意思是博客应用程序,在弹性豆茎生产环境中 - 在组允许的情况下,所有HTTP / HTTPS以及您可能需要的任何其他内容
RDS - 设置RDS安全组(适用于MySQL)
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html
- 在RDS下创建一个新的安全组
- 同样,命名约定是你想要的任何东西,但我尝试遵循类似的东西。
    “应用环境-RDS”
- 例如,对于生产环境中名为“Blog”的应用程序,我将其称为“blog-production-rds”,意思是博客应用程序,在RDS的生产环境中 - 允许此RDS安全组的EC2安全组 - 您可能还想在组上允许自己的公共IP,以便直接从您的机器访问数据库 - 或者,设置VPC和网关(整个其他蜡球)以获得远程访问权限 - 创建新的RDS实例并将其附加到新的RDS安全组

EB - 创建EB应用和环境
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.html
- 在Elastic Beanstalk下设置一个App,Amazon 64位PHP节点(或其他) - 设置环境(随意调用它)
- 将环境容器的文档根目录设置为/ public
- 将环境容器的安全组设置为刚刚创建的EC2安全组的名称 - 将您的应用程序数据库连接配置为指向您创建的RDS实例(主机名,用户名,密码等)

答案 1 :(得分:2)

此外,我建议查看Chris Fidao的TrustedProxy包,以便在调用Request :: getClientIp()时获得正确的IP地址:http://fideloper.com/laravel-4-trusted-proxies

(务必使用CIDR notation设置代理地址。)

适用于将Laravel置于亚马逊负载均衡器之后的另一个有用信息来源: http://fideloper.com/web-app-load-balancing