我已经安装了很多次laravel,但是今天当我必须为我的项目安装它时,我遇到了以下奇怪的错误:
Failed to decode response: zlib_decode(): data error
Retrying with degraded mode
我运行以下命令来安装 laravel:
composer create-project laravel/laravel myproject --prefer-dist
在我的/var/www/
目录中,该目录完全是可读,写和可执行的。
尝试以下命令:
composer clear-cache
将此行添加到 "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 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
,然后从"作曲家公钥/签名"页面输入密钥。之后我能够下载我的依赖项。
就我而言,VirtualBox的版本是问题所在。https://github.com/composer/composer/issues/5814
确保您的 VB 不是 5.0.28 或 5.1.8。
@dwainm所说的,您还可以全局定义此配置,以避免从项目中编辑composer.json
。
使用以下命令创建~/.composer/config.json
:
{
"repositories": [
{
"type": "composer",
"url": "https://packagist.org"
},
{
"packagist": false
}
]
}
后安装或更新库
composer config --global repositories.packagist.allow_ssl_downgrade false
如果你看看人们想出的答案,有各种各样的东西可以为不同的人修复它,包括使用"sudo",使用"自我更新"等。
经过大量测试,我发现真正的答案是一遍又一遍地运行它。 它每次都走得更远一点,并缓存上次能够获取的先前数据。 所以最终它只是工作,然后人们认为他们做的最后一件事就是解决了它。 实际上,您只需要一遍又一遍地运行它。 这显然是作曲家应该解决的问题。
每次运行它时看到它正在取得进展的关键是使用
作曲家更新 -VVV
这将显示您上次运行它时走了多远。 每次运行它时,它通常会下载另一个或两个存储库。
在作曲家解决根本原因之前,这似乎是最好的解决方案。 祝你好运。
作曲家的快速修复
降级模式#
由于 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">
如果以上方法均无帮助,请报告错误。
我会把这个答案留给像我这样尝试过上述所有解决方案的人都没有成功。就我而言,问题是Mac的Virtual Box(1.5.8(的相关版本。我确实降级了以前的版本(1.5.2(,并且全部恢复正常工作。
这似乎是多余的,但请尝试重新启动计算机。如果您刚刚安装了作曲家和其他东西,那么您的系统可能只需要刷新。
我遇到了同样的问题,但它现在在重新启动后(在 Mac 上(可以正常工作。
这个问题有很多答案,因为有多种因素可能导致此问题。它基本上归结为1(缓存问题,2(与存储库的连接问题(例如Packagist(,或3(Composer项目的配置问题。
在重新配置整个设置之前,请先消除选项 1 和 2。例如,在2017年5月23日,Packagist遇到了问题,因此切换到不同的镜像为我解决了问题。
在 Linux 中,我在"作曲家更新"之前使用了 sudo,问题解决了。
sudo composer update
composer clear-cache
sudo composer self-update
使用命令composer clear-cache
清除作曲家缓存。此外,请确保您有权访问您的.composer
目录。它通常位于 ~/.composer
.
检查您是否为 PHP CLI 安装了 ZIP 扩展For me helped(ubuntu(:sudo apt-get install php7.0-zip
这是Slim的Composer的正确安装方法。
1.启动作曲家安装程序(作曲家安装程序.exe(注意:如果默认情况下没有选择PHP.exe文件,请转到安装文件夹(WAMP,XAMP,LAMP - 您选择的安装(文件夹,然后在bin文件夹下查找php\php.exe - 这恰好是Slim的命令行PHP。2.启动 WAMP、XAMP 或 LAMP(您选择的(服务器(以避免错误"无法解码 zlib 流"(3.然后继续安装的其余部分(最终将导致安装完成,无需用户进一步输入(。
我在尝试composer install doctrine/dbal
时遇到了同样的问题此消息不断显示:Failed to decode response: zlib_decode(): data error
我必须通过添加以下行来更新我的composer.json
:
{
...
"config": {
"http": true
}
...
}
它解决了这个问题。我希望它能帮助你们中的一些人。
对我来说,当我关闭我的VPN(ExpressVPN(时,这个错误就消失了。此处建议的其他方法不起作用。
就我而言,该问题是由我的 ~/.composer 目录中的错误文件权限引起的。
所以我跑了
sudo chown myusername:myusername ~/.composer
(将我的用户名替换为我的实际用户名(
然后作曲家跑得很好。
在窗口中我使用了这个cmd
php composer.phar clear-cache
解决方法 Mac OS X:
获取网络设备的名称:
networksetup -listallnetworkservices
在该设备上禁用 IPv6(在本例中为"Wi-Fi"(:
networksetup -setv6off Wi-Fi
运行作曲家...
您可以通过以下方式再次启用 IPv6:
networksetup -setv6automatic Wi-Fi
来自作曲家文档:
由于Travis和其他系统上的一些间歇性问题,我们 引入了降级的网络模式,可帮助作曲家完成 成功,但禁用了一些优化。已启用 首次检测到问题时自动。如果您看到此问题 偶尔你可能不必担心(缓慢或过载 网络也可能导致这些超时(,但如果它反复出现 您可能需要查看以下选项来识别和解决 它。
如果您使用的是 IPv6,请尝试禁用它。如果这解决了您的问题, 与您的ISP或服务器主机联系,问题不在于 包装师级别,但在您和包装师之间的路由规则中 (即整个互联网(。修复这些问题的最佳方法是提高 意识到有能力修复它的网络工程师。拿 查看下一节,了解 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
遇到了类似的问题。在 composer.json 文件中编写给定的行,然后按照下一个作曲家命令运行作曲家更新。希望它能像对我一样帮助某人。
"存储库":[ { "类型": "作曲家", "网址": "https://packagist.org" }, { "packagist": false } ]
适用于 Windows 10
根据其他操作系统的其他答案中所述的故障排除编辑器,这可能是由于ipv6而发生的。如果我们为所有隧道禁用它,它会在 Windows 10 中得到解决。
要在 Windows 中禁用 ipv6:
从Microsoft支持下载 EasyFix 文件,然后按照此处所述的步骤操作:
- 单击要运行的过程的"下载"按钮。
- 单击"文件下载"对话框中的"运行"或"打开"。
- 按照简易修复向导中的步骤操作。
注意:我下载了Disable IPv6 on all tunnel interfaces
版本并运行了它。然后我可以使用composer create-project
命令。
尝试作曲家清除缓存,然后关闭Windows防火墙
对于 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**"
如果返回作曲家 1.x.x,请检查以下内容:
php /usr/local/bin/composer
如果返回 2.x.x,则必须找到本地安装的作曲家并删除其文件夹。
请勿删除此文件夹/usr/local/bin/composer
对于我自己来说,我只是做了
sudo apt-get upgrade composer