【问题标题】:Specify version for yum in cloud formation template在云形成模板中指定 yum 的版本
【发布时间】:2019-10-25 22:00:27
【问题描述】:

我最近尝试为 WordPress 运行基于堆栈的亚马逊云形成模板。不幸的是,yum 安装了旧的 PHP,我得到了这样的交流:

您的服务器运行 PHP 版本 5.3.29,但 WordPress 5.2.1 至少需要 5.6.20。

我更改堆栈并指定版本:

     "install_wordpress" : {
        "packages" : {
          "yum" : {
            "php"          : ["5.6.20"],
            "php-mysql"    : [],
            "mysql"        : [],
            "mysql-server" : [],
            "mysql-devel"  : [],
            "mysql-libs"   : [],
            "httpd"        : []
          }
        },

但我仍然遇到同样的错误。云生成模板中如何正确指定yum的版本?

我使用 AWS 提供的默认模板作为基本模板: https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/WordPress_Single_Instance.template

【问题讨论】:

  • 你运行的是什么操作系统?
  • @shrewmouse Amazon Linux AMI,如默认 WordPress 模板中所定义。我编辑了问题并添加了指向模板的链接。

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

您使用的是ami-0080e4c5bc078760e,它是Amazon Linux 2018.03。根据package list,PHP 5.3 是那里可用的最新版本。您可以将 AMI 切换到包含 PHP 7.0 的 Ubuntu 16.04 或带有 PHP 7.2 的 Ubuntu 18.04。您也可以从源代码手动安装更新版本的 PHP。

另一个选项是启用amazon-linux-extras。您需要在调用cfn-init 之前启用PHP 7.2 主题,这将安装AWS::CloudFormation::Init 中列出的包。您还可以使用两个配置集。见this example

基本上:

  "Metadata": {
    "AWS::CloudFormation::Init": {
      "configSets": {
        "default": ["extras", "config"]
      },
      "extras": {
        "commands": {
          "0_enable_php": {
            "command": "amazon-linux-extras enable php7.2",
            "test": "[ ! grep -Fxq '[amzn2extra-php7.2]' /etc/yum.repos.d/amzn2-extras.repo ]"
         }
      }
      "config": {
        "packages": {
          "yum": {
            "php"          : [],
            "php-mysql"    : [],
            "mysql"        : [],
            "mysql-server" : [],
            "mysql-devel"  : [],
            "mysql-libs"   : [],
            "httpd"        : []
          }
        }
      }
    }
  }

【讨论】:

  • 这就是重点。我不想手动安装任何东西,因为我使用的是 Cloud Front 模板。我也不能轻易将 Amazon AMI 更改为 Ubuntu,因为每个发行版使用不同的包管理器。
  • 您也可以从 CloudFormation 运行任意脚本,而不仅仅是 yum。
猜你喜欢
  • 2020-04-14
  • 2019-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-22
  • 2020-01-08
  • 2020-12-03
  • 1970-01-01
相关资源
最近更新 更多