【问题标题】:Isolate PHP versions on AWS EC2在 AWS EC2 上隔离 PHP 版本
【发布时间】:2014-08-13 10:43:26
【问题描述】:

我实际上在我的所有项目中都使用 PHP 5.3。但是出于你知道的所有原因,我想更新到 PHP 5.4(或 5.5)。

我们也将很快迁移到 AWS EC2 上,例如在“普通”Linux 上,例如 Debian Wheezy。

但问题是我们有一些旧项目由于某些原因我们无法迁移到 PHP 5.3,并且由于某些其他原因我们也无法删除它们。

所以我想知道在我们的 AWS EC2 实例上隔离这些项目以使用多个版本的 PHP/Apache 的最佳方法是什么。

我正在考虑使用 Docker,因此我们可以轻松地在主系统上安装其他 PHP/Apache。加上知道它是一种虚拟机听起来不错,所以它不会对主“服务器”产生任何影响。

这是最好的解决方案吗?

编辑:另外,由于某些成本原因,我们买不起另一个 EC2 实例

【问题讨论】:

  • 为什么不拥有两个实例?费用?
  • 没错,成本! ;) 编辑:感谢您的问题,我将其添加到我的原始帖子中
  • 这个问题太宽泛了。对于您提供的信息,我可以说 docker 应该可以解决问题。这是最好的解决方案吗?老实说,我不知道。

标签: php amazon-web-services amazon-ec2 docker isolation


【解决方案1】:

您没有提到操作系统,但假设它是基于 linux 的最佳解决方案是 创建多个应用用户并通过编译安装不同版本的php 在相应的应用程序用户的主目录中。

例如创建用户user1(主目录:/home/user1/)和user2(主目录:/home/user2/)。现在切换到 user1 并安装 php5.3 和 apache 路径 /home/user1/app/php 和 /home/user1/app/apache 下的编译 分别。对 user2 执行相同操作,但这次使用另一个版本的 php。 记住 apache 必须在不同的端口上运行以避免端口冲突。你可以 将第三个 apache 安装为具有多个虚拟主机的反向代理,这将 接受端口 80 上的流量并将它们发送到不同的后端 apache 根据要求。

交通会是这样的

client http request <--> apache rp <--->  app1 based on apache1 or app2 based on apache2

问候

拉贾希·哈达

【讨论】:

  • 我想过这个解决方案,但是在 Docker 中安装旧的 PHP/Apache 不是更容易更安全吗?正如@Regan 所说,“我真的不知道”。无论如何感谢您的回答!
  • 我没有使用 Docker,但在我们所有的工作环境中,我们使用不同的应用程序用户来隔离不同版本的应用程序。还使用 rp 提供额外的功能,如负载平衡/缓存等。
【解决方案2】:

为什么不使用 php-fpm 并安装其中两个呢?然后你可以决定哪一个与哪个虚拟主机一起使用。所以每个虚拟主机都可以有自己的 php 版本。在这种情况下,您只有 1 个 apache 服务器在运行。

应该很容易在 google 上找到关于这方面的教程。

【讨论】:

    猜你喜欢
    • 2018-12-12
    • 1970-01-01
    • 2020-02-19
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    相关资源
    最近更新 更多