在云形成模板中为yum指定版本

时间:2019-06-11 13:03:06

标签: amazon-web-services amazon-cloudformation

我最近尝试为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

1 个答案:

答案 0 :(得分:0)

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

另一个选项是启用amazon-linux-extras。您需要先启用PHP 7.2主题,然后才能调用cfn-init,它将安装AWS::CloudFormation::Init中列出的软件包。您还可以使用两个配置集。参见PHP 7.2

基本上:

  "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"        : []
          }
        }
      }
    }
  }