换镜像源后仍超时,主因是本地DNS解析慢或Composer健康检查触发packagist.org查询;需验证nslookup耗时、设置COMPOSER_DISABLE_PACKAGIST=1、指定国内DNS(如223.5.5.5)并确认镜像URL正确。

为什么换镜像源后还是超时?先查 DNS 是否真在拖慢 Composer
换阿里、腾讯或华为的 Composer 镜像源后仍卡在 composer install 或 composer update 的 “Resolving dependencies” 阶段,大概率不是镜像本身的问题,而是本地 DNS 解析 packagist.org 或镜像域名(如 mirrors.aliyun.com)太慢,导致 Composer 内置的 Guzzle HTTP 客户端在连接前就超时了。
验证方法:终端执行 time ping mirrors.aliyun.com 和 time nslookup packagist.org。如果 nslookup 耗时 >1s,而 ping 很快,说明 DNS 解析是瓶颈。
- 不要只改
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/—— 这只影响包元数据拉取,不影响 Composer 初始化时对 packagist.org 的 DNS 查询 - Composer 2.2+ 默认会尝试访问
packagist.org做健康检查,哪怕你已设镜像,这步仍会触发 DNS 查询 - Windows 用户尤其注意 hosts 文件是否被安全软件重置,macOS / Linux 用户留意
/etc/resolv.conf中的 nameserver 是否为 114.114.114.114 或 223.5.5.5
强制跳过 packagist.org 健康检查 + 指定可信 DNS
Composer 提供了绕过初始域名解析的开关,配合系统级 DNS 设置才能真正生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/设镜像 - 加开关禁用健康检查:
composer config -g disable-tls false(确保 HTTPS 不被误拦),再执行composer config -g github-protocols ["https"],最后关键一步:composer config -g bitbucket-oauth {"bitbucket.org": {"consumer-key": "", "consumer-secret": ""}}并设置环境变量COMPOSER_DISABLE_PACKAGIST=1 - 更稳妥的做法是设环境变量:
export COMPOSER_NO_INTERACTION=1 && export COMPOSER_DISABLE_PACKAGIST=1,然后跑命令 - 系统 DNS 必须指向国内公共 DNS,比如修改
/etc/resolv.conf(Linux/macOS)或网络适配器 IPv4 属性(Windows),填入223.5.5.5和119.29.29.29,避免运营商 DNS 缓存污染
用 --repository-url 直接绕过全局配置
临时项目、CI 环境或不想动全局配置时,直接指定仓库 URL 是最干净的方式,它不触发任何 packagist.org 相关 DNS 查询。
- 安装依赖时用:
composer install --repository-url=https://mirrors.aliyun.com/composer/ - 更新时用:
composer update --repository-url=https://mirrors.aliyun.com/composer/ - 注意:该参数会忽略
composer.json中的repositories字段,也跳过所有全局镜像设置,完全以命令行为准 - CI 脚本中推荐这种方式,避免因不同机器的全局 config 不一致导致构建失败
镜像源地址别写错,HTTPS 证书和路径要严格匹配
手输镜像地址时多一个斜杠、少一个下划线,或用了 HTTP 协议,都会导致 301/302 跳转 + TLS 握手失败,最终表现为“Connection timed out”。
- 阿里云正确地址:
https://mirrors.aliyun.com/composer/(末尾有斜杠) - 腾讯云:
https://mirrors.cloud.tencent.com/composer/ - 华为云:
https://repo.huaweicloud.com/repository/php/(注意路径是/repository/php/,不是/composer/) - 执行
curl -I https://mirrors.aliyun.com/composer/应返回HTTP/2 200,若返回 301 或证书错误,说明地址或本地 CA 有问题 - 某些企业内网会拦截 HTTPS SNI,此时需联系运维开通
mirrors.aliyun.com的白名单,而非换源
真正卡住的时候,往往不是镜像选得不对,而是 DNS 查不到、TLS 握不上、或者 Composer 在后台默默查了两次 packagist.org —— 把这三层拆开看,比反复换源有效得多。

















