[英]Setting up Symfony2 application on amazon (for dummies)
我正在尝试学习如何在亚马逊云上成功部署Symfony2应用程序。 有用的是我开始使用空白的Ubuntu,安装了lamp-server ^,svn ......其他一些好东西,它工作得很好。
问题是:所有资产和数据库都托管在那个实例上,我知道这不是正确的做法。 我检查了很多网站,并没有找到任何简单的解决方案设置真正的S2应用程序,只有Wordpress和类似。
我的应用程序允许用户上传图像,然后使用Liip / Imagine包显示它们
我还检查了AmazonWebServices包 ,我想我应该以某种方式使用它们; 第一个用于显示,第二个用于将文件发送到S3存储桶。 它也必须在我当地的Windows环境中工作。
RDS需要阅读
$dbhost = $_SERVER['RDS_HOSTNAME']; $dbport = $_SERVER['RDS_PORT']; $dbname = $_SERVER['RDS_DB_NAME'];
能够访问mysql。 使用parameters.yml时该怎么做?
基础设施
虽然您可以使用AWS来提供独立服务器,但如果您希望支持多个实例,负载平衡等,那么您需要将事情分开。 在最基本的级别,您可能希望使用:
然后你可以通过以下方式增加:
此外,您可以从市场上使用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要求较低的情况下,您可以使用小型实例。
此外,随着时间的推移,您可以开始查看Elastic Beanstalk和Chef(甚至可能是本地开发盒的流浪者),Elastic Beanstalk( 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连接。
您可以使用Amazon s3存储桶存储文件。 看看https://github.com/KnpLabs/Gaufrette ,它使您能够将文件存储在本地文件系统,Amazon s3文件系统或其他文件系统上,只需使用配置控制它即可。 用于在RDS上指定数据库详细信息。 在parameters.yml中配置以下内容:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: ~
database_name: symfony
database_user: root
database_password: password
问题是:Symfony期望环境变量名中的SYMFONY__
前缀将其输入到param容器中。 这可以通过在弹性beanstalk中对环境变量进行别名来轻松实现。
我自己的配置如下所示:
SYMFONY__DATABASE_HOST: '$RDS_HOST'
SYMFONY__DATABASE_PORT: '$RDS_PORT'
SYMFONY__DATABASE_USER: '$RDS_USERNAME'
SYMFONY__DATABASE_PASSWORD: '$RDS_PASSWORD'
SYMFONY__DATABASE_NAME: '$RDS_DB_NAME'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.