在 Amazon Elastic Beanstalk 或一般实例或服务器上运行的 PHP 应用程序有啥区别?

Posted

技术标签:

【中文标题】在 Amazon Elastic Beanstalk 或一般实例或服务器上运行的 PHP 应用程序有啥区别?【英文标题】:What is the difference for the PHP app running on the Amazon Elastic Beanstalk or the general instances or servers?在 Amazon Elastic Beanstalk 或一般实例或服务器上运行的 PHP 应用程序有什么区别? 【发布时间】:2012-05-15 11:38:55 【问题描述】:

我的问题是:在 Amazon Elastic Beanstalk(之后称为 EB)上运行的 php 应用程序与一般实例或服务器上的确切区别是什么?

我是 Amazon Elastic Beanstalk 的新手,我曾经尝试过 PagodaBox.com。 PaaS平台EB和PagodaBox.com完全一样吗?

运行在通用服务器上的应用程序或像EB这样的PaaS自动缩放平台的运行时环境有什么区别?

我可能已经弄清楚了一些。我在EB和PagodaBox.com上都做了一个测试,PagodaBox告诉我它们是目的地,所以你必须在本地配置你的应用程序,实际上它们不支持从Share Dir出来的写操作已经在 Boxfile 中定义了。

那么,对吗?和 EB 一样,PaaS 平台将与托管您网站的通用服务器完全不同?

当您在通用单服务器上安装 wordpress 之类的网站时,您可以在服务器端配置和编辑文件,您的每一次更改都会影响您的源代码或资源文件,它们是您代码的一部分。但是如果你使用的是像宝塔这样的 PaaS,你甚至不能在共享目录之外进行写操作,这意味着你必须在本地完成所有操作,然后将它们作为静态代码上传。所有用户数据都将像在通用服务器中一样存储到 mysql 数据库中,但所有上传都应存储到定义为 Boxfile 的共享目录中。但它应该在EB的哪里?如果我们要在 EB 中部署基于 wordpress 的站点,我们如何存储上传的文件?是要更改代码还是我们必须找到一种自己的方式来存储驻留数据,因为我们正在编写自己的应用程序?

当您设计运行在通用服务器或 EB 平台上的应用程序时,有多少不同?问题可能是:当您的应用运行分布式环境时有什么不同?

对不起,我不会说中文也不会说英文。但我正在寻找你的答案,谢谢!

【问题讨论】:

【参考方案1】:

Elastic Beanstalk 是一种云 PaaS 服务,它具有与您描述的相同的限制。 Elastic Beanstalk 中没有任何内容可以阻止您的应用程序写入每个实例上的磁盘,但不建议仅将其用于临时文件存储,因为负载均衡器可以随时删除和创建实例。

对于 Wordpress,您必须找到一种方法将上传文件写入 S3 或其他更持久的存储。

为了回答您的其他问题,Elastic Beanstalk 除了部署代码外,不会对您的代码执行任何操作。它不会以任何方式改变它。

【讨论】:

以上是关于在 Amazon Elastic Beanstalk 或一般实例或服务器上运行的 PHP 应用程序有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Django 在 Amazon Elastic Beanstalk 上的迁移命令被杀死

Amazon Elastic Beanstalk 在运行任何命令时不断询问凭据

在 Amazon Elastic Beanstalk 上安装 Anaconda

Elastic Beanstalk 是不是支持 Amazon 的 Aurora DB?

在 Amazon Elastic Compute Cloud (Amazon EC2) 上托管 twitter 流 api 的优缺点是啥

Amazon Elastic Beanstalk:多个应用程序可以共享一个 Amazon RDS 数据库实例吗?