如何修复 "https://repo.packagist.org/packages.json does not contain valid Json"?

How to fix "https://repo.packagist.org/packages.json does not contain valid Json"?

我在 vagrantbox (Centos 7) 上遇到了 composer 运行 的问题,它开始突然发生。

我已经手动尝试 运行 下面 link 中提到的 command/solution 但无济于事。

(澄清一下,我使用的是 vagrant 而不是 docker,但这是我发现的最接近的问题我的情况。我发现的大部分信息都与 composer.json 无效相关,但这里是 packagist。org/packages.json 目前有效)

问题详情如下

虽然 运行 composer update 在终端上我得到:

 composer update


  [Seld\JsonLint\ParsingException]
  "https://repo.packagist.org/packages.json" does not contain valid JSON
  Parse error on line 1:

  ^
  Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

并且当 运行 composer install 也在终端上每个包裹 returns 这个:

Failed to download psr/cache from dist: "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8" 
appears broken, and returned an empty 200 response
    Now trying to download from source

当运行composer config --global repo.packagist composer packagist.org 结果现在

composer update
Loading composer repositories with package information


  [Composer\Downloader\TransportException]
  Your configuration does not allow connections to http://repo.packagist.org/packages.json. See https://getcomposer.o
  rg/doc/06-config.md#secure-http for details.

知道为什么会发生这种情况,我该如何解决?

同样的问题,因为 php 更新到 7.2.17。 在带有 php 7.2.16 composer 运行 的 centos 7 上就好了... 回滚到 7.2.16 是目前唯一找到的解决方案...

编辑: 似乎是 symfony flex 问题:https://github.com/symfony/flex/issues/484

我通过将输出重定向到 /dev/null 绕过了这个问题。

composer require symfony/orm-pack > /dev/null

当我们在控制台运行这个命令

时它会起作用
composer config disable-tls true

也可能与 IPv6 相关,如果您的 provider/system 配置为 IPv6 但没有有效的 IPv6 路由到互联网。

这件事发生在我身上,正在做 sysctl -w net.ipv6.conf.all.disable_ipv6=1(作为 root),然后再次尝试 composer 解决了这个问题。

要永久应用它,请将规则添加到 /etc/sysctl.conf(或您 OS 首选的任何位置)

我遇到了同样的问题。经过几天的搜索,我找到了解决方案。这似乎是一个 PHP 问题。尝试在 php.ini 上评论一行 curl 扩展。我正在使用 php 5.6 版。

extension=php_curl.dll 

类型;在扩展名之前,至少会是这样:

;extension=php_curl.dll

在 XAMP 中我做了以下更改 注释以下行 ;扩展名=php_curl.dll 它工作正常

我在尝试安装 symfony twig bundle 时遇到了同样的问题。我 运行 :

set http_proxy=
set https_proxy=
composer require symfony/twig-bundle 

成功了