2016-03-15 108 views
6

Composer的最新版本并不拉Laravel,我认为这可能是因为Composer增加了新的secure_http功能,可从Packagist和Laravel Packagist下载HTTP。这是我的想法,所以我需要解决方案。以前版本的Composer表现不错。 显示我的终端,当我尝试安装Laravel安装,上的错误是:最新作曲者版本不拉Laravel

无法解码响应:zlib_decode():与降级模式下的数据错误,重试,检查https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode更多信息您配置不允许连接到http://packagist.org。有关详细信息,请参阅https://getcomposer.org/doc/06-config.md#secure-httphttp://packagist.org无法完全加载,软件包信息从本地缓存中加载并可能过期安装失败,将./composer.json恢复为其原始内容。 [Composer \ Downloader \ TransportException]您的配置不允许连接到http://packagist.org。有关详细信息,请参阅https://getcomposer.org/doc/06-config.md#secure-http

回答

21

我有同样的问题。发现这里的解决方案:Reddit Discussion of the issue

基本上,你有两个选择:

  • 恢复到以前的版本,由运行

    运行

    self-update --rollback

  • 或者降级作曲家

    composer config -g secure-http false

+1

是的,你是对的。我得到了第一个解决方案并以这种方式工作,实际上我下载了以前版本的Composer,并将mod修改为755并粘贴到'/ usr/local/bin /'目录中。但你给我的第二个解决方案试图在composer.phar文件中进行编辑,但不知何故,我得到了错误。好的,谢谢你的帮助。我会尝试第二个。 – Shafiuzzaman

10

在最后这一个救了我,

sudo composer self-update 

sudo composer clear-cache 

sudo composer config -g secure-http false 

sudo composer update --no-scripts 

终于完成了!

0

我建议使用使OpenSSL:已

composer config -g -- disable-tls false

然后你还需要积极它php.in

打开PHP。ini和搜索php_openssl你最终像这样extension=php_openssl.dll

php_openssl.dll文件是在你的PHP的ext目录,所以如果你改变了php目录,并有像

PHP Warning: PHP Startup: Unable to load dynamic library 
'C:\php\ext\php_openssl.dll' - The specified module could not be found. 
in Unknown on line 0 

您需要设置extension=php_openssl.dll一个错误extension="your php direcroty"\ext\php_openssl.dll

0

当运行(运行降级作曲家)

composer config -g secure-http false 

我仍然有一个exeption

Fatal error: Uncaught Error: Call to undefined method Composer\Package\RootPackage::getConfig() ... 

我得到了一个成功finaly使用额外的--no-插件

composer config -g secure-http false --no-plugins 
composer self-update --no-plugins 

希望这有助于人:)