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


Deploying a Laravel 4 app on AWS Elastic Beanstalk

我在Laravel 4中开发了一个应用程序-在我的本地机器上使用常规/典型的Laravel设置完美工作(这里没有什么异常)。

我现在想将该应用程序部署到AWS Elastic Beanstalk(可能在安装了php5.4的典型linux 64位服务器上)

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

例如,有没有我需要创建的配置文件等等?(我在这里读到了一些关于app/config/弹性文件的信息:http://darrennola.com/2013/02/02/hp-aws-elastic-beanstalk-rds-laravel-4-with-migrations-on-updates/)

我以前从未部署过,所以请尽可能详细地介绍。

要回答您关于L4应用程序配置的问题,您肯定会发现这些帖子很有帮助:

L4云部署问题
Laravel和弹性豆茎

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

如何在AWS上部署Laravel 4应用程序
给你一个简短的说明。我看到的说明(但还没有时间测试)在下面,但仍然先阅读上面的帖子。感谢/props/对以下步骤的赞扬从Laravel论坛转到codenamegary


在您的机器上安装AWS命令行工具
http://aws.amazon.com/code/6752709412171743
-需要ruby和其他一些东西

EC2-设置安全组
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
-在EC2下创建一个新的安全组
-命名约定是你想要的,通常我会尝试使用
"应用程序环境eb"
-例如,对于生产环境中名为"博客"的应用程序,我称之为"博客生产eb",意思是博客应用程序,在生产环境中位于弹性豆茎上
-在组上允许所有HTTP/HTTPS以及您可能需要的任何其他内容

RDS-设置RDS安全组(针对MySQL)
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html
-在RDS下创建一个新的安全组
-再说一遍,命名约定是你想要的,但我尽量遵循
"应用程序环境rds"
-例如,对于生产环境中名为"博客"的应用程序,我将其称为"博客生产rds",意思是rds生产环境中的博客应用程序
-允许此RDS安全组上的EC2安全组
-您可能还想在组中允许您自己的公共IP,这样您就可以直接从您的计算机访问数据库
-或者,设置一个VPC和一个网关(另一个蜡球)以获得远程访问
-创建一个新的RDS实例并将其附加到新的RDS安全组

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

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

(请确保使用CIDR表示法设置代理地址。)

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