将 Symfony 4 应用程序部署到 AWS Elasticbeanstalk

Posted

技术标签:

【中文标题】将 Symfony 4 应用程序部署到 AWS Elasticbeanstalk【英文标题】:Deploying Symfony 4 Application to AWS Elasticbeanstalk 【发布时间】:2018-10-22 10:16:24 【问题描述】:

我有一个在 php 7.1.14(本地)上运行的 Symfony 4.0.1 应用程序,我想使用 EB CLI 将其部署到 AWS Elastic Beanstalk

我在我的master git 分支上有一个应用程序的 dist 包,配置用于生产(删除了供应商文件夹等),我能够成功部署到 Heroku。现在我需要部署到 AWS EB。

AWS EB 环境已经设置好(尽管我无权访问控制台)。部分环境细节如下:

Platform: arn:aws:elasticbeanstalk:us-east-2::platform/Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.7.7
Tier: WebServer-Standard-1.0

起初,我能够成功部署应用程序,但访问 URL 时每个页面都会出现 404 错误。

我做了一些谷歌搜索,发现了一些描述.config文件使​​用的文章。我添加了一个名为03_main.config 的内容如下。

commands:
    300-composer-update:
        command: "export COMPOSER_HOME=/root && composer.phar self-update -n"
container_commands:
    300-run-composer:
        command: "composer.phar install --no-dev --optimize-autoloader --prefer-dist --no-interaction"
    600-update-cache:
        command: "source .ebextensions/bin/update-cache.sh"
    700-remove-dev-app:
        command: "rm web/app_dev.php"

使用此.config 文件进行部署会出现以下部署失败错误:

ERROR: [Instance: i-0c5f61f41d55a18bc] Command failed on instance. Return code: 127 Output: /bin/sh: composer.phar: command not found. command 300-composer-update in .ebextensions/03-main.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

我了解 .config 文件的用途,但不了解运行此 Symfony 应用程序需要什么额外配置。

【问题讨论】:

【参考方案1】:

我猜你应该使用如下作曲家的完整路径:

100-update-composer: command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update -n

【讨论】:

以上是关于将 Symfony 4 应用程序部署到 AWS Elasticbeanstalk的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 4 在 AWS Elastic Beanstalk 上运行

在 AWS Elastic Beanstalk 上部署 Dockerized Symfony2 应用程序

Symfony2,AWS Beanstalk:如何将供应商作为文件而不是 git-submodules 推送到 repo

在 AWS 上的 symfony 2.8 应用程序中更改根目录 - Elastic Beanstalk

使用 Amazon Elastic Beanstalk 部署 symfony2.1 应用程序

如何将多个服务部署到 AWS ECS?