AWS elastic beanstalk git 部署由于作曲家问题突然失败,尽管 composer.json 没有任何变化

AWS elastic beanstalk git deployment suddenly failing due to composer issue despite no changes to composer.json

我在 AWS Elastic Beanstalk 中有许多环境 运行。我使用 git aws.push.

直接从 git 部署

我使用 composer.json 安装所需的 php sdk。我已经很长时间没有更改这个文件了,但是它突然在所有环境中都开始失败了。

AWS 日志的输出是

+ echo 'Found composer.json file. Attempting to install vendors.'
Found composer.json file. Attempting to install vendors.
+ composer.phar install --no-ansi --no-interaction
Loading composer repositories with package information
Installing dependencies



  [RuntimeException]                                                                                                                                                 
  Could not load package aws/aws-sdk-php in http://packagist.org:     [UnexpectedValueException] Could not parse version constraint ^5.3:     Invalid version string "^5.3"  






  [UnexpectedValueException]                                              
  Could not parse version constraint ^5.3: Invalid version string "^5.3"  



install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader]



2015-05-28 09:57:18,414 [ERROR] (15056 MainThread)     [directoryHooksExecutor.py-33] [root directoryHooksExecutor error] Script     /opt/elasticbeanstalk/hooks/appdeploy/pre/10_composer_install.sh failed     with returncode 1

我的 composer.json 是:

{
"require": {
    "aws/aws-sdk-php": "2.7.*",
    "monolog/monolog": "1.0.*",
    "facebook/php-sdk-v4" : "4.0.*",
    "ext-curl": "*",
    "paypal/sdk-core-php": "v1.4.2",
    "paypal/permissions-sdk-php":"v2.5.106",
    "paypal/adaptivepayments-sdk-php":"2.*"
}
}

我注意到它确实需要 aws-sdk-php 但版本不是 5.3(在日志中提到)。

5.3 让我想到 php 版本,检查 php -v i get

php -v
PHP 5.5.12 (cli) (built: May 20 2014 22:27:36)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend     Technologies

我尝试重新安装以前安装良好的旧版本,但它们也失败并出现相同的错误。这应该是环境造成的。有谁知道最近有没有变化。

在项目的根目录中创建一个名为 .ebextensions 的文件夹。然后在其中创建一个名为 01-composer-install.config 的新文件,内容如下。

commands:
  01_update_composer:
    command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update

option_settings:
  - namespace: aws:elasticbeanstalk:application:environment
    option_name: COMPOSER_HOME
    value: /root

我只需要使用此处的说明更新作曲家: https://getcomposer.org/download/