Composer版本:2.0.4
操作系统:macOS 10.15.7
当我运行作曲家诊断时,我遇到 DNS 解析器问题,如附图所示
我能够从终端 ping getcomposer.org、packagist.org、github.com - 所有站点。
curl -i packagist.org -L
也按预期工作,没有任何错误
然而,通过作曲家诊断,我遇到了 DNS 解析器问题
在我将 PHP 从 7.4.1 升级到 7.4.12 并更新到 Composer 2 后,这种情况开始发生
可能是什么问题以及如何解决它
作为可搜索的文本代码 - Composer 2.0.4 诊断失败
$ composer diagnose
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: FAIL
The following exception probably indicates you have misconfigured DNS resolver(s)
[Composer\Downloader\TransportException] Resolving timed out after 10003 milliseconds
Checking https connectivity to packagist: FAIL
The following exception probably indicates you have misconfigured DNS resolver(s)
[Composer\Downloader\TransportException] Resolving timed out after 10003 milliseconds
Checking github.com rate limit: FAIL
[Composer\Downloader\TransportException] Resolving timed out after 10004 milliseconds
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: FAIL
[Composer\Downloader\TransportException] Resolving timed out after 10002 milliseconds
Composer version: 2.0.4
PHP version: 7.4.12
PHP binary path: /usr/local/Cellar/php/7.4.12/bin/php
OpenSSL version: OpenSSL 1.1.1h 22 Sep 2020
cURL version: 7.73.0 libz 1.2.11 ssl OpenSSL/1.1.1h
zip extension: OK
我刚刚卸载了composer 2.0.4并安装了composer 1.10.17以及其余的软件包/应用程序,并且它运行时没有任何DNS解析器错误
作为可搜索文本代码编辑器1.10.17诊断
composer diagnose
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: You are not running the latest stable version, run `composer self-update` to update (1.10.17 => 2.0.4)
Composer version: 1.10.17
PHP version: 7.4.12
PHP binary path: /usr/local/Cellar/php/7.4.12/bin/php
OpenSSL version: OpenSSL 1.1.1h 22 Sep 2020
那么这是否意味着composer 2.0.4有一些问题?或者与我的其他应用程序/软件包的设置不兼容?
我想使用composer 2.x,那么我该怎么做才能让它工作呢?
归根结底,这不是“作曲家”的问题,而是底层连接技术的问题。 Composer 2 默认使用
curl
,而 Composer 1 使用 PHP 流...显然它们对不同的网络配置和错误配置并不同样敏感或宽容。
一些需要检查和重新检查的事情:
您的 DNS 设置。检查是否没有错误配置的条目。只是为了它,如果您可以将您的 DNS 提供商更改为“已知良好”的提供商。例如。 Cloudflare 的 (
1.1.1.1
) 或 Google 的 (8.8.8.8
、8.8.4.4
),并删除所有其他条目。
IPV6 连接。如果启用了它,您可能需要禁用它,因为一些用户报告了它的问题。
禁用您可能用于连接互联网的任何 VPN,因为它们可能会干扰您的连接。
关于这个问题一些用户评论了类似的问题。
如果您正在运行任何 VPN,请尝试禁用并再次检查,在我的情况下,这就是问题所在。
我解决了分配网络的问题
# docker network create --subnet=172.19.0.0/24 net-composer
# docker run --rm -v $(pwd):/app --interactive --tty --network net-composer composer install
在cmd中尝试这个
ipconfig /flushdns
。
对我有用。
这只是因为我的以太网是私有的,而不是公共的。建议使用公共模式以授予对主机的访问权限。网络配置文件应公开,以免被发现。
对于 Ubuntu,配置文件 /etc/resolv.conf 包含允许连接到网络的计算机将名称解析为地址的信息。
将其更改为例如 Google 的 DNS 服务器:
名称服务器 8.8.8.8 名称服务器 8.8.4.4
希望这能解决问题。