最新版本的作曲家没有拉拉,我认为这可能是因为作曲家添加了新的secure_http功能,用于从Packagist下载,而Laravel Packagist都在HTTP中。这就是我的想法,所以我需要解决方案。以前版本的作曲家做得很好。当我尝试安装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 恢复为其原始内容。[作曲家\下载器\传输异常]您的配置不允许连接到 http://packagist.org。有关详细信息,请参阅 https://getcomposer.org/doc/06-config.md#secure-http。
我遇到了同样的问题。在这里找到解决方案:Reddit问题的讨论
基本上,您有两种选择:
-
通过运行恢复到以前的版本
self-update --rollback
-
或者,通过运行降级作曲家
composer config -g secure-http false
终于这个救了我,
sudo composer self-update
sudo composer clear-cache
sudo composer config -g secure-http false
sudo composer update --no-scripts
终于完成了!
(通过运行降级作曲家)
composer config -g secure-http false
我仍然得到了一个解释
Fatal error: Uncaught Error: Call to undefined method ComposerPackageRootPackage::getConfig() ...
我使用额外的 --no-plugins 获得了成功的结局
composer config -g secure-http false --no-plugins
composer self-update --no-plugins
希望这对任何人有帮助:)
我建议使用以下方法启用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:phpextphp_openssl.dll' - The specified module could not be found.
in Unknown on line 0
您需要将extension=php_openssl.dll
设置为extension="your php direcroty"extphp_openssl.dll