安装 Laravel 时出现 Composer 错误“无法解码响应:zlib_decode():数据错误”

Posted

技术标签:

【中文标题】安装 Laravel 时出现 Composer 错误“无法解码响应:zlib_decode():数据错误”【英文标题】:Composer Error while installing Laravel "Failed to decode response: zlib_decode(): data error" 【发布时间】:2016-02-03 17:32:12 【问题描述】:

我已经安装了很多次 laravel,但是今天当我不得不为我的项目安装它时,我遇到了以下奇怪的错误:

Failed to decode response: zlib_decode(): data error
Retrying with degraded mode

我运行以下命令来安装 laravel:

composer create-project laravel/laravel myproject --prefer-dist

在我的/var/www/ 目录中,该目录完全可以读取、写入和执行。

【问题讨论】:

也许你可以在github.com/composer/composer/issues/4121找到一些有用的信息 【参考方案1】:

适用于 linux ubuntu 20.04

逐步尝试这些:

0-go to home by command "**cd ~**"
1-**composer clear-cache**
2-remove old version of composer (1.x.x) if exists "**sudo rm -R ~/.config/composer**"
3-change your internet connection(cable or wifi or ...)(important)
4-install new version with these commands...
4-1: **sudo apt update**
4-2: **sudo apt install php-cli unzip**
4-3: **sudo apt install curl**
4-4: **cd ~**
4-5: **curl -sS https://getcomposer.org/installer -o composer-setup.php**
4-6: **HASH=`curl -sS https://composer.github.io/installer.sig`**
4-7: **php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH')  echo 'Installer verified';  else  echo 'Installer corrupt'; unlink('composer-setup.php');  echo PHP_EOL;"**
4-8: **sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer**
4-9: check composer version with "**composer --version**"

如果返回 composer 1.x.x,请检查:

php /usr/local/bin/composer

如果返回2.x.x,则必须找到本地安装的composer并删除其文件夹。

请勿删除此文件夹/usr/local/bin/composer

【讨论】:

【参考方案2】:

尝试 composer clear-cache 然后关闭你的 windows 防火墙

【讨论】:

您能否更具体地说明关闭防火墙有什么帮助? 我使用的是 Windows 10 电脑。 我使用的是 Windows 10 电脑。在某些方面,我只是想通 Windows 防火墙不允许对 packagist.org 的请求,所以我所做的是我在安装过程中关闭了我的防火墙并在之后重新打开它。我测试了两次。你也可能想做一些作曲家更新。【参考方案3】:

适用于 Windows 10


根据TroubleShooting Composer 对于其他操作系统的其他答案所述,这可能是由于 ipv6 而发生的。如果我们为所有隧道禁用它,它会在 Windows 10 中得到解决。

在 Windows 中禁用 ipv6:

Download EasyFix file from Microsoft Support 并按照此处所述的步骤进行操作:

    单击您要运行的过程的“下载”按钮。 在“文件下载”对话框中单击“运行”或“打开”。 按照简易修复向导中的步骤操作。

注意:我下载了Disable IPv6 on all tunnel interfacesversion 并运行了它。然后我可以使用composer create-project 命令。

【讨论】:

【参考方案4】:

我也遇到过类似的问题。在 composer.json 文件中写入给定的行,然后在下一个 composer 命令之后运行 composer update。希望它能像对我一样帮助别人。

“存储库”:[ “类型”:“作曲家”, "网址": "https://packagist.org" , “包装师”:假 ]

【讨论】:

【参考方案5】:

为了我自己,我只是做了

sudo apt-get upgrade composer

【讨论】:

【参考方案6】:

来自Composer documentation:

由于 Travis 和其他系统的一些间歇性问题,我们 引入了降级网络模式,帮助 Composer 完成 成功但禁用了一些优化。这是启用的 首次检测到问题时自动执行。如果你看到这个问题 偶尔您可能不必担心(缓慢或过载 网络也可能导致这些超时),但如果它反复出现 您可能想查看以下选项来识别和解决 它。

如果您使用的是 IPv6,请尝试禁用它。如果这能解决你的问题, 与您的 ISP 或服务器主机取得联系,问题不在于 Packagist 级别但在您和 Packagist 之间的路由规则中 (即整个互联网)。解决这些问题的最好方法是加薪 有能力修复它的网络工程师的意识。拿 请查看下一部分以了解 IPv6 解决方法。

Linux 解决方案:

要禁用 ipv6,您必须使用任何文本编辑器打开 /etc/sysctl.conf 并在末尾插入以下行:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

【讨论】:

【参考方案7】:

Mac OS X 的解决方法:

获取您的网络设备的名称:

networksetup -listallnetworkservices

在该设备上禁用 IPv6(在本例中为“Wi-Fi”):

networksetup -setv6off Wi-Fi

运行作曲家...

您可以通过以下方式再次启用 IPv6:

networksetup -setv6automatic Wi-Fi

【讨论】:

【参考方案8】:

在窗口中我使用了这个 cmd

php composer.phar clear-cache

【讨论】:

【参考方案9】:

在我的情况下,问题是由我的 ~/.composer 目录中的错误文件权限引起的。

所以我跑了

sudo chown myusername:myusername ~/.composer

(将 myusername 替换为我的实际用户名)

然后作曲家运行良好。

【讨论】:

【参考方案10】:

对我来说,当我关闭我的 *** (Express***) 时,这个错误就会消失。此处建议的其他方法无效。

【讨论】:

【参考方案11】:

这个问题有很多答案,因为有多种因素可能会导致这个问题。它基本上归结为 1) 缓存问题,2) 到您的存储库(例如 Packagist)的连接问题,或 3) 您的 Composer 项目的配置问题。

在重新配置整个设置之前,请先消除选项 1 和 2。例如,2017 年 5 月 23 日Packagist was having issues,因此切换到其他镜像解决了我的问题。

【讨论】:

【参考方案12】:

这似乎是多余的,但请尝试重新启动您的机器。如果您刚刚安装了 composer 和其他东西,那么您的系统可能只需要刷新..

我遇到了同样的问题,但现在重新启动后它可以正常工作(在 Mac 上)。

【讨论】:

【参考方案13】:

我在尝试composer install doctrine/dbal 时遇到了同样的问题 此消息一直显示:Failed to decode response: zlib_decode(): data error

我必须通过添加以下行来更新我的composer.json


...
   "config": 
     "http": true
   
...

它解决了这个问题。希望对大家有所帮助。

【讨论】:

【参考方案14】:

这是安装 composer for slim 的正确方法。

1.启动作曲家安装程序(composerSetup.exe) 注意:如果默认情况下没有选择 php.exe 文件,则转到您的安装文件夹(wamp、xamp、lamp - 您选择的安装)文件夹并在 bin 文件夹下查找 php\php.exe - 恰好成为你的苗条的命令行 php。 2.启动 wamp、xamp 或 lamp(您选择)服务器(以避免错误“无法解码 zlib 流”) 3. 然后继续进行其余的安装(这最终将导致安装完成,无需用户进一步输入)。

【讨论】:

【参考方案15】:

如果你看一下人们提出的答案,有各种各样的东西可以为不同的人解决这个问题,包括使用“sudo”、使用“self-update”等。

经过大量测试,我发现真正的答案是一遍又一遍地继续运行它。它每次都会走得更远一些,并缓存它上次能够获取的先前数据。所以最终它只是起作用了,然后人们认为他们做的最后一件事就是解决了它。实际上,您只需一遍又一遍地运行它。这显然是作曲家应该解决的问题。

每次运行时看到它都在进步的关键是使用

作曲家更新-vvv

这将显示它与上次运行时的距离。每次运行它时,它通常会下载另一个或两个 repo。

在作曲家修复任何根本原因之前,这似乎是最好的解决方案。祝你好运。

【讨论】:

【参考方案16】:

检查您是否为 PHP CLI 安装了 ZIP 扩展 对我有帮助(ubuntu):sudo apt-get install php7.0-zip

【讨论】:

【参考方案17】:

运行后安装或更新库

composer config --global repositories.packagist.allow_ssl_downgrade false

【讨论】:

【参考方案18】:

就我而言,VirtualBox 的版本是问题所在。 https://github.com/composer/composer/issues/5814

确保您的 VB 不是 5.0.28 或 5.1.8。

【讨论】:

我也遇到过这个问题,最后是 Virtualbox 问题。我需要降级到版本 5.1.6 来解决它。 (我运行的是 5.1.8)另外,我读到运行 5.0.28 也导致了这个问题,降级到 5.0.10 解决了它。 版本 5.0.30 已修复此问题。 我用的是 5.1.4 还是有这个问题:/【参考方案19】:

试试下面的命令:

composer clear-cache

【讨论】:

【参考方案20】:

我会把这个答案留给像我这样尝试过上述所有解决方案的人都没有成功。在我的情况下,问题是适用于 Mac 的 Virtual Box (1.5.8) 的相关版本。我确实降级了我以前的版本(1.5.2)并且所有恢复正常工作。

【讨论】:

【参考方案21】:

使用命令composer clear-cache 清除作曲家缓存。此外,请确保您有权访问您的 .composer 目录。它通常位于~/.composer

【讨论】:

【参考方案22】:

简短:运行composer self-update --update-keys并按照说明操作。


一步一步:

我在尝试为我的项目安装依赖项时遇到了同样的错误:

Failed to decode response: zlib_decode(): data error
Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info
Your configuration does not allow connection to http://packagist.org. See https://getcomposer.org/doc/06-config.md#secure-http for details.
http://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date

为了确定,我尝试用composer self-update 更新作曲家,这给了我同样的错误,但另一个提示:

[RuntimeException]
The phar signature did not match the file you downloaded, this means your public keys are outdated or that the phar file is corrupt/has been modified

问题通过运行解决

composer self-update --update-keys

并从Composer Public Keys / Signatures 页面输入密钥。之后我可以下载我的依赖项。

【讨论】:

【参考方案23】:

在what @dwainm says之后,您还可以全局定义此配置以避免从您的项目中编辑composer.json

使用以下命令创建~/.composer/config.json


    "repositories": [
        
            "type": "composer",
            "url": "https://packagist.org"
        ,
        
            "packagist": false
        
    ]

【讨论】:

【参考方案24】:

来自composer的快速修复

降级模式#

由于 Travis 和其他系统的一些间歇性问题,我们引入了降级网络模式,它可以帮助 Composer 成功完成,但会禁用一些优化。首次检测到问题时会自动启用此功能。如果您偶尔看到此问题,您可能不必担心(缓慢或过载的网络也可能导致这些超时),但如果它反复出现,您可能需要查看以下选项来识别和解决它。

如果您已被指向此页面,您需要检查几件事:

如果您使用的是 ESET 防病毒软件,请进入“高级设置”并禁用“Web 访问保护”下的“HTTP 扫描程序” 如果您使用的是 IPv6,请尝试禁用它。如果这解决了您的问题,请与您的 ISP 或服务器主机联系,问题不在于 Packagist 级别,而在于您和 Packagist 之间的路由规则(即整个互联网)。修复这些问题的最佳方法是提高有能力修复这些问题的网络工程师的意识。

要在 Linux 上禁用 IPv6,请尝试使用此命令,该命令会在您的配置中附加一条优先使用 IPv4 而不是 IPv6 的规则:

sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"

如果以上方法都没有帮助,请报告错误。

【讨论】:

【参考方案25】:
composer clear-cache

sudo composer self-update

【讨论】:

【参考方案26】:

将此行添加到包含此符号“”的最后一行之前的“composer.json”

,
"repositories": [

"type": "composer",
"url": "https://packagist.org"
,
 "packagist": false 
]

现在 cd 到您的项目文件夹并输入:

Composer install

归功于: http://www.webdeveloper.com/forum/showthread.php?285403-Need-Help-Installing-Laravel

【讨论】:

澄清一下:您需要更改的 composer.json 位于您的虚拟机中 /home/vagrant/.composer/ 这让我摆脱了zlib_decodeTransportExceptions【参考方案27】:

在 Linux 中,我在“composer update”之前使用 sudo 并解决了问题。

sudo composer update

【讨论】:

这是错误的答案,因为它确实会破坏非根工作区中的作曲家权限。您希望以 root 身份运行 composer 的唯一情况是 root 用户正在维护 PHP 工作区(在任何情况下这通常都是一个坏主意)。事实上,以 root 身份运行此命令甚至会导致原始问题中报告的原始问题。如果您不是 root 用户,那么您应该始终以自己的身份运行 composer,而不是 root。

以上是关于安装 Laravel 时出现 Composer 错误“无法解码响应:zlib_decode():数据错误”的主要内容,如果未能解决你的问题,请参考以下文章

安装 Laravel 时出现 Composer 错误“无法解码响应:zlib_decode():数据错误”

当我为 laravel 版本 7.3.0 安装 laravel/ui 时出现错误

尝试通过 Composer 将 Laravel/Nova 更新到最新版本时出现 INVALID CREDENTIALS 错误

在 laravel 开始时出现 500 个内部错误

Laravel 5.2 - 使用 composer 和 git bash 安装 laravel 时出错

Composer Laravel 安装错误:您的需求无法解析为一组可安装的软件包