最新版本的Composer并未拉动Laravel,我认为可能是因为Composer添加了新的secure_http功能,可以从Packagist下载并且Laravel Packagist在HTTP中。这就是我的想法,所以我需要解决方案。之前版本的Composer表现不俗。 我在尝试安装Laravel安装程序时在终端上显示的错误是:
无法解码响应:zlib_decode():数据错误重试降级模式,请检查https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode以获取更多信息您的配置不允许连接到http://packagist.org。有关详细信息,请参阅https://getcomposer.org/doc/06-config.md#secure-http。 http://packagist.org无法完全加载,包信息从本地缓存加载,可能已过期安装失败,将./composer.json恢复为原始内容。 [Composer \ Downloader \ TransportException]您的配置不允许连接到http://packagist.org。有关详细信息,请参阅https://getcomposer.org/doc/06-config.md#secure-http。
答案 0 :(得分:27)
我遇到了同样的问题。在此处找到解决方案:Reddit Discussion of the issue
基本上,您有两种选择:
通过运行
恢复到以前的版本 self-update --rollback
或者,通过运行降级作曲家
composer config -g secure-http false
答案 1 :(得分:10)
最后这个救了我,
sudo composer self-update
sudo composer clear-cache
sudo composer config -g secure-http false
sudo composer update --no-scripts
终于完成了!
答案 2 :(得分:1)
运行时(通过运行降级作曲家)
composer config -g secure-http false
我还有一个例外
Fatal error: Uncaught Error: Call to undefined method Composer\Package\RootPackage::getConfig() ...
我最终使用了额外的--no-plugins
获得了成功composer config -g secure-http false --no-plugins
composer self-update --no-plugins
希望这有助于任何人:)
答案 3 :(得分: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