Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AWS弹性豆茎部署_Php_Amazon Web Services_Amazon Ec2_Amazon Elastic Beanstalk - Fatal编程技术网

Php AWS弹性豆茎部署

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

我目前正在Elastic Beanstalk之外运行一个EC2实例,其中包括一堆PHP文件/文件夹。我希望此应用程序位于Elastic Beanstalk中,因此我创建了一个新的Elastic Beanstalk环境,该环境会自动启动一个新的EC2实例

1) 我是否必须将所有PHP文件/文件夹保存在zip文件中并上载和部署

2) 如果我更改了一个文件,我是否必须重新压缩并上传(例如,没有FTP)?(由于我有500MB的图像,因此这将非常耗时)


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将它们加载到您的应用程序中。这将为你做两件事

  • 您的应用程序版本(.zip文件)将相当小,因此部署将是快速和无痛的
  • 为最终用户加载图像的速度将大大加快
  • 另外,值得注意的是,应用程序版本的最大允许大小为512M,因此如果添加任何映像,很快将无法部署

    3) 我是否应该只在我的应用程序是最终版本时使用Elastic Beanstalk,并继续在其外部使用EC2实例以方便FTP和更改

    你的决定。但是你应该知道beanstalk有很多围绕开发和推广到prod的特性。
    典型的弹性豆茎流是在局部进行开发。然后,一旦特性完成,就部署到开发环境中。测试它,确保它工作,然后签入。一旦您的应用程序处于产品状态,您就可以与您的产品环境进行cname交换(
    eb-swap
    ),以实现零停机时间部署。

    太棒了!谢谢你的详细解释。对于2)我将把所有图像文件夹移动到S3。对于用户上传,他们是使用:直接上传到S3,还是使用典型的PHP文件上传脚本并传输到S3?@bloxx我不确定我是否完全理解你的问题。好的,我明白了。直接上传
    $result=$client->putObject(数组('Bucket'=>$Bucket,'Key'=>'data.txt',Body'=>'Hello!'))谢谢!我在部署WordPress时也遇到了这个问题,它在上传文件夹中有很多图像。您将如何将这些图像放入s3@DannyCullen你可能想问一个单独的问题。太好了,谢谢!我正在JetBrains上运行PhpStorm,所以我相信这就是我正在寻找的插件: