我正在通过编写器加载AWS API,并得到以下错误:
[RuntimeException]
Could not load package aws/aws-sdk-php in http://packagist.org: [Unexpected
ValueException] Could not parse version constraint ^5.3: Invalid version st
ring "^5.3"
[UnexpectedValueException]
Could not parse version constraint ^5.3: Invalid version string "^5.3"
配置:{
"name": "RepositoryName",
"homepage": "http://homepage.elasticbeanstalk.com",
"archive": {
"directory": "dist",
"format": "zip",
"skip-dev": false,
"absolute-directory": "/var/www/html/web/dist"
},
"repositories": [
{ "type": "composer", "url": "http://packagist.org" }
],
"require": {
"abeautifulsite/jquery-minicolors": "2.1.6",
"aws/aws-sdk-php": "2.6.*"
},
"require-dependencies": true
}
正如你所看到的,我正在请求2.6.*
版本,而不是^5.3
。有什么好办法吗?在本地和AWS上运行结果相同。
这是由于错误或不支持的语法而导致的Composer解析错误。
我认为旧版本的Composer不能处理^
操作符
先试一个composer self-update
。
- 您正在使用最新的Elastic Beanstalk堆栈吗?最新的堆栈应该提供一个支持新语法特性的最新版本的Composer。
- 你可以通过预先安装依赖部署到生产环境来避免这个问题。这意味着在本地"构建"你的应用程序,并将其打包以分发(包括所有依赖项),然后上传/安装/配置。
- 您还可以添加一个beanstalk配置文件,目标是运行
composer self-update
。
.ebextensionscomposer.config
commands:
01updateComposer:
command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /root
此处引用Symfony 2 AWS部署指南,因为它包含该文件的示例:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP_symfony2.html
和ebeextensions指南:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
我使用本地主机和本地安装的Composer。完成
composer self-update
, too
如何安装aws-sdk-php与Composer?
如果您只想获取aws-sdk包以便在本地使用它,您可以使用以下编写器。以Json文件为例:
composer.json
:
{
"name": "my/project-using-aws-package",
"require": {
"abeautifulsite/jquery-minicolors": "2.1.6",
"aws/aws-sdk-php": "2.6.*"
},
"autoload": {
"psr-4": {
"MyApp\": "app/"
}
}
}
执行命令composer install -vvv --profile --prefer-dist -o
.
这将安装v2.6.16的aws-sdk-php包。请注意,这不是最新版本,但我认为你故意定义了2.6.*
。
我遇到了同样的问题,但我也收到了过时的警告:
警告:这个作曲家的开发版本已经超过30天了。建议通过运行"composer"来更新它。点击"self-update"获取最新版本。
所以,我运行了php composer.phar self-update
然后php composer.phar update
它为我工作:)