在AWS Elastic Beanstalk上部署后运行PHP脚本

问题描述 投票:2回答:3

我创建了一个PHP脚本,它为Magento生成一个local.xml文件,其中包含所需的数据库设置和凭据。 我需要在部署应用程序后运行它; 但我似乎无法找到一种方法。 我的理解是我需要在.ebextensions目录中创建一个.config文件。 有人有解决方案吗?

magento elastic-beanstalk
3个回答
8
投票

从技术上讲,约什是不正确的。 根据文档( http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-commands ):命令部分..“命令被处理按名称的字母顺序排列,它们在应用程序和Web服务器设置并提取应用程序版本文件之前运行。“

我所知道的最接近的是“container_commands”部分,“container_commands中的命令按字母顺序按名称处理。它们在应用程序和Web服务器设置完毕后运行,应用程序版本文件已被提取,但在部署了应用程序版本。“

我不知道在部署后真正运行脚本的方法(这就是我在这里寻找答案的原因)。


6
投票

Elastic Beanstalk将查看/ opt / elasticbeanstalk / hooks / appdeploy / post目录下的文件,以便在部署运行。

所以你可以利用这个并做:

commands:
  create_post_dir:
    command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/job_after_deploy.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      /var/app/current
      ** run your php script here **

-3
投票

是的, .ebextensions是你正在寻找的。 要了解如何捆绑源代码,请查看示例应用程序 。 你可以看一下PHP。

有关.ebextensions更多信息,请查看此页面

这是一个自定义命令的示例。 这可以放在.ebextensions目录中名为sample.config的文件中:

commands:
    success_command:
        command: echo "this will be ran after launching"

如果复制并粘贴YAML并仔细检查格式,请务必小心。 您也可以使用遵循类似格式的JSON。

© www.soinside.com 2019 - 2024. All rights reserved.