首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AWS CloudFormation使用最新的AutoScaling和PHP启动AutoScaling服务器?

使用AWS CloudFormation使用最新的AutoScaling和PHP启动AutoScaling服务器?
EN

Stack Overflow用户
提问于 2020-08-14 17:39:23
回答 1查看 184关注 0票数 0

我想通过EC2模板启动一个带有自动标注的CloudFormation实例的LAMP堆栈。每当我尝试它时,堆栈都是成功构建的,但是当我进入网站时,它给了我一个信息,即应用程序不支持旧版本的PHP。

现在,当我在网上搜索这个问题时,我找到了一个建议installing newer versions of httpd and php through yum的答案。我在EC2 linux终端上直接尝试了这一点,它成功了,我现在可以成功地访问这个网站了。问题是,我希望这些更新的版本直接安装在模板中。为此,我在自动缩放::LaunchConfiguration中替换了这段代码

代码语言:javascript
复制
       "setup" : {
        "packages" : {
            "yum" : {
              "nfs-utils"       : [],
              "httpd"           : [],
              "php"             : [],
              "mysql"           : []
            }
        },

通过以下方式:

代码语言:javascript
复制
       "setup" : {
        "packages" : {
            "yum" : {
              "nfs-utils"       : [],
              "httpd24"         : [],
              "php72"           : [],
              "mysql"           : []
            }
        },

这将导致堆栈无法创建以AutoScalingGroup为param的LaunchConfiguration,并出现一个错误,该错误声明“接收到0成功信号”。这是我的LaunchConfiguration属性

代码语言:javascript
复制
    "Properties": {
    "AssociatePublicIpAddress" : true,
    "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
              { "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] },
    "InstanceType"   : { "Ref" : "InstanceType" },
    "SecurityGroups" : [ {"Ref" : "WebServerSecurityGroup"} ],
    "KeyName"        : { "Ref" : "KeyName" },
    "IamInstanceProfile" : { "Ref" : "CloudWatchPutMetricsInstanceProfile" },
    "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
            "#!/bin/bash -xe\n",
            "yum update -y aws-cfn-bootstrap\n",

            "/opt/aws/bin/cfn-init -v ",
            "         --stack ", { "Ref" : "AWS::StackName" },
            "         --resource LaunchConfig ",
            "         --configsets app_install ",
            "         --region ", { "Ref" : "AWS::Region" }, "\n",

            "/opt/aws/bin/cfn-signal -e $? ",
            "         --stack ", { "Ref" : "AWS::StackName" },
            "         --resource WebServerGroup ",
            "         --region ", { "Ref" : "AWS::Region" }, "\n"
    ]]}}
  }

知道为什么不起作用吗?对于直接通过模板安装最新的httpd和php,有什么建议吗?我是否应该删除软件包部分,并将安装httpd和php的脚本直接放在UserData中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-16 21:32:18

我自己解决了这个问题。我使用Ubuntu18.04AMI而不是Linux,因为它支持最新版本的PHP和Apache。

还必须稍微更改一下"UserData“:

代码语言:javascript
复制
        "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
        "#!/bin/bash -xe\n",
        "apt-get update -y\n",
        "apt-get install -y python-pip\n",
        "mkdir -p /opt/aws/bin\n",
        "python /usr/lib/python2.7/dist-packages/easy_install.py --script-dir /opt/aws/bin https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz\n",
        "ln -s /usr/local/lib/python2.7/dist-packages/aws_cfn_bootstrap-1.4-py2.7.egg/init/ubuntu/cfn-hup /etc/init.d/cfn-hup \n",
        "systemctl daemon-reload \n",

        "chmod 700 /etc/init.d/cfn-hup \n",
        "chown root:root /etc/init.d/cfn-hup \n",
        "update-rc.d cfn-hup defaults \n",
        "update-rc.d cfn-hup enable \n",

        "/opt/aws/bin/cfn-init -v ",
        "         --stack ", { "Ref" : "AWS::StackName" },
        "         --resource LaunchConfig ",
        "         --configsets app_install ",
        "         --region ", { "Ref" : "AWS::Region" }, "\n",

        "/opt/aws/bin/cfn-signal -e $? ",
        "         --stack ", { "Ref" : "AWS::StackName" },
        "         --resource WebServerGroup ",
        "         --region ", { "Ref" : "AWS::Region" }, "\n"
    ]]}}

由于Ubuntu使用apt而不是yum,所以我包括了包:

代码语言:javascript
复制
          "setup" : {
        "packages" : {
            "apt" : {
              "nfs-common"    : [],
              "apache2"       : [],
              "php"           : [],
              "php-mysql"     : [],
              "mysql-common"  : []
            }
        },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63417609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档