首先运行:
composer config --list --global //this will get the composer home path.
[home] /root/.composer //it's my composer home path.
然后,编辑config.json文件,将其修改为如下内容:
{
"config": {
"github-protocols": [
"https"
]
},
"repositories": {
"packagist.org": {
"type": "composer",
"url": "https://packagist.org"
}
}
}
它将使packagist连接强制使用https。此外,您可以在项目中配置composer.json,这是一个Laravel示例,看起来像:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*"
},
"config": {
"preferred-install": "dist"
},
"repositories": {
"packagist.org": {
"type": "composer",
"url": "https://packagist.org"
}
}
}
在Composer v1.2.3之前,Packagist的存储库键为"packagist"
。在v1.2.3中,它已更改为"packagist.org"
(请参见提交e38ebef)。
只需更改Composer的默认存储库网址:
composer config -g repo.packagist composer https://packagist.org
composer config -g github-protocols https ssh
它更改或设置要仅使用https的packagist仓库。
这也可以修复与本地composer.json文件相关的任何问题。 无需在本地或全局破坏composer.json文件。
我尝试了被采纳的答案,但对我没有用,我还尝试了macbert的答案,但仍然有同样的问题,还试图卸载并重新安装composer。不管怎样感谢macbert和Alex Chiang,我找到了另一个解决方案。
我认为问题在于我的composer无法从packagist.org服务器下载数据,所以我将服务器更改为一个镜像。在cmd上运行以下命令切换到镜像(我从这里得到了这个镜像)
composer config -g repo.packagist composer https://repo-eu-uk-1.packagist.org
如果这个不起作用,可以尝试从https://packagist.org/mirrors中选择其他的镜像。
无论如何,我已经将相同的列表列在这里,即使您无法加载上面的链接。
Africa, South Africa
composer config -g repos.packagist composer https://packagist.co.za
Asia, China
composer config -g repos.packagist composer https://mirrors.huaweicloud.com/repository/php
Asia, China
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Asia, China
composer config -g repos.packagist composer https://php.cnpkg.org
Asia, China
composer config -g repo.packagist composer https://packagist.phpcomposer.com
Asia, China
composer config -g repos.packagist composer https://packagist.mirrors.sjtug.sjtu.edu.cn
Asia, China
composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
Asia, India
composer config -g repo.packagist composer packagist.in
Asia, India
composer config -g repos.packagist composer https://packagist.in
Asia, Indonesia
composer config -g repos.packagist composer https://packagist.vrkansagara.in
Asia, Japan
composer config -g repos.packagist composer https://packagist.jp
Asia, South Korea
composer config -g repos.packagist composer https://packagist.kr
Asia, Thailand
composer config -g repos.packagist composer https://packagist.mycools.in.th/
South America, Brazil
composer config -g repos.packagist composer https://packagist.com.br
注意:我没有尝试所有的镜像站,如果一个不起作用,您可以逐个尝试。
我曾经遇到同样的问题,所以通过谷歌搜索来到这里。
我在本地机器和docker机器上都运行了composer命令。当运行composer install时,每台机器都出现了各种错误,包括Composer Content-Length Mismatch
。
我按照建议开始修改我的composer.json
文件,然后意识到我的macbook丢失了wifi连接,就像它喜欢做的那样。此外,由于我正在旅行,网络质量很差。我还收到警告说我的本地机器上的composer已过期,而我本应该使用我的docker VM来发出命令。我的docker工作区容器已经一年没有更新了。
我恢复了wifi连接,在本地机器上升级了composer,composer install运行得非常好。我认为如果我升级docker配置,它也将在那里正常工作。
composer config -g repos.packagist composer https://packagist.jp
我遇到了同样的问题,我做了两件事情
首先更新了composer,从1.4升级到了1.7
其次,将网络连接更改为高速。
在我的Windows机器上安装Laravel时,我遇到了同样的问题,我使用git bash运行以下命令。
composer global require "laravel/installer=~1.1"
然后我切换到普通的命令提示符,它就可以无错误地工作了。
通过升级zlib(1g)[deb]来解决相同的问题
(更准确地说,从trusty / 14.04到xenial / 16.04,两者都是LTS,当然;-)