2016-03-15 147 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 

希望這有助於人:)