在亚马逊上设置Symfony2应用程序(用于假人)

Zel*_*jko 17 php amazon-s3 amazon-web-services symfony

我正在尝试学习如何在亚马逊云上成功部署Symfony2应用程序.有用的是我开始使用空白的Ubuntu,安装了lamp-server ^,svn ......其他一些好东西,它工作得很好.

问题是:所有资产和数据库都托管在那个实例上,我知道这不是正确的做法.我检查了很多网站,并没有找到任何简单的解决方案设置真正的S2应用程序,只有Wordpress和类似.

我的应用程序允许用户上传图像,然后使用Liip/Imagine包显示它们

我还检查了AmazonWebServices包,我想我应该以某种方式使用它们; 第一个用于显示,第二个用于将文件发送到S3存储桶.它也必须在我当地的Windows环境中工作.

  1. 怎么解决?是否有一些真正的白痴解决方案?
  2. RDS需要阅读

    $dbhost = $_SERVER['RDS_HOSTNAME'];
    $dbport = $_SERVER['RDS_PORT'];
    $dbname = $_SERVER['RDS_DB_NAME'];
    
    Run Code Online (Sandbox Code Playgroud)

    能够访问mysql.使用parameters.yml时该怎么做?

ste*_*ton 22

基础设施

虽然您可以使用AWS来提供独立服务器,但如果您希望支持多个实例,负载平衡等,那么您需要将事情分开.在最基本的级别,您可能希望使用:

  • S3 - 持久存储
  • RDS - MySQL数据库
  • EC2 - Apache/Nginx,PHP前端

然后你可以通过以下方式增加:

  • Cloudfront - S3内容的本地化交付
  • 负载均衡器 - 确保以最佳方式使用EC2实例
  • 自动缩放 - 启动/停止新实例
  • Route 53 - DNS
  • VPC - 重要的是,它提供安全性,SSL证书的单个前端等.

此外,您可以从市场上使用AMI,而不是从头开始:https://aws.amazon.com/marketplace/

查看AWS入门指南,因为这会详细介绍所有内容:http://docs.aws.amazon.com/gettingstarted/latest/wah-linux/web-app-hosting-intro.html

使用上面的内容,我建议将数据库移动到RDS并简单地在EC2实例上托管Apache.您甚至可能会发现这也具有成本效益,因为在内存/ CPU要求较低的情况下,您可以使用小型实例.

此外,随着时间的推移,你就可以开始看弹性魔豆和厨师(甚至放浪的本地开发框),弹性魔豆(http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP_symfony2.html)

所以,Symfony

首先,环境

我假设您已经创建了生产和开发环境:http://symfony.com/doc/current/cookbook/configuration/environments.html.这很重要,因为您可以在本地环境和生产环境之间更改配置.

意象

结帐https://github.com/liip/LiipImagineBundle/blob/master/Resources/doc/data-loader/stream.md其利用https://github.com/KnpLabs/Gaufrette(或束:https://开头github.com/KnpLabs/KnpGaufretteBundle).

似乎有一篇关于如何配置它的好文章:https://florian.ec/articles/upload-files-to-amazon-s3-with-symfony2-and-gaufrette/

使用上述环境,您可以将生产配置为读取/写入s3,而开发会写入/ tmp(例如)

数据库.

我将假设您使用Doctrine作为数据库连接,并遵循Symfony文档了解如何设置配置:http://symfony.com/doc/current/book/doctrine.html#配置数据库.

您需要做的就是遵循环境逻辑并相应地设置db strings production/local.这应该是后台无缝的,不需要手动MySQL连接.