Php AWS弹性豆茎部署
我目前正在Elastic Beanstalk之外运行一个EC2实例,其中包括一堆PHP文件/文件夹。我希望此应用程序位于Elastic Beanstalk中,因此我创建了一个新的Elastic Beanstalk环境,该环境会自动启动一个新的EC2实例 1) 我是否必须将所有PHP文件/文件夹保存在zip文件中并上载和部署 2) 如果我更改了一个文件,我是否必须重新压缩并上传(例如,没有FTP)?(由于我有500MB的图像,因此这将非常耗时)Php AWS弹性豆茎部署,php,amazon-web-services,amazon-ec2,amazon-elastic-beanstalk,Php,Amazon Web Services,Amazon Ec2,Amazon Elastic Beanstalk,我目前正在Elastic Beanstalk之外运行一个EC2实例,其中包括一堆PHP文件/文件夹。我希望此应用程序位于Elastic Beanstalk中,因此我创建了一个新的Elastic Beanstalk环境,该环境会自动启动一个新的EC2实例 1) 我是否必须将所有PHP文件/文件夹保存在zip文件中并上载和部署 2) 如果我更改了一个文件,我是否必须重新压缩并上传(例如,没有FTP)?(由于我有500MB的图像,因此这将非常耗时) 3) 我是否应该只在我的应用程序是最终版本时使用El
3) 我是否应该只在我的应用程序是最终版本时使用Elastic Beanstalk,并继续在其外部使用EC2实例以方便FTP和更改?您有多种方法将php应用程序部署到Elastic Beanstalk。您可以使用AWS CLI。(对于Java,您也可以将Eclipse与AWS插件一起使用,我不确定它是否也可以与php一起使用,但值得一看。) 这是一个很好的来源: 在这方面没有实际操作经验,但是.NET插件能够进行增量部署,因此使用PHP有很好的机会。(这样您就不会再上传所有图像了。) 对于生产,我确实支持HA Beanstalk设置,我将其用于.NET和Java环境。它为您提供了许多良好的功能,因此您不需要处理所有操作细节 1) 我是否必须将所有PHP文件/文件夹保存在zip文件中并上载和部署 对。但这是可以抽象出来的。我建议使用。CLI只需键入
eb deploy
即可为您完成压缩、上载和更新
2) 如果我更改了一个文件,我是否必须重新压缩并上传(例如,没有FTP)?(由于我有500MB的图像,因此这将非常耗时)
目前弹性豆茎仅支持全拉链。所以你每次都得上传整件事。EB CLI将通过多个线程上载您的zip,除非您的网络连接速度较慢,否则不会花费很长时间。
话虽如此,我强烈建议您将所有图像和资产放在s3和cloudfront中,然后使用Ajax将它们加载到您的应用程序中。这将为你做两件事
典型的弹性豆茎流是在局部进行开发。然后,一旦特性完成,就部署到开发环境中。测试它,确保它工作,然后签入。一旦您的应用程序处于产品状态,您就可以与您的产品环境进行cname交换(
eb-swap
),以实现零停机时间部署。太棒了!谢谢你的详细解释。对于2)我将把所有图像文件夹移动到S3。对于用户上传,他们是使用:直接上传到S3,还是使用典型的PHP文件上传脚本并传输到S3?@bloxx我不确定我是否完全理解你的问题。好的,我明白了。直接上传$result=$client->putObject(数组('Bucket'=>$Bucket,'Key'=>'data.txt',Body'=>'Hello!'))代码>谢谢!我在部署WordPress时也遇到了这个问题,它在上传文件夹中有很多图像。您将如何将这些图像放入s3@DannyCullen你可能想问一个单独的问题。太好了,谢谢!我正在JetBrains上运行PhpStorm,所以我相信这就是我正在寻找的插件: