“Could not resolve host”或“Connection timed out”是网络层问题,本质为DNS解析或TCP连接失败,与Composer配置、PHP版本无关;应先确认网络连通性,再针对性换DNS、镜像源或调整超时设置。

“Could not resolve host” 或 “Connection timed out” 是网络层问题,不是 Composer 本身坏了
这类报错本质是 curl 或 php 发起 HTTP 请求时卡在 DNS 解析或 TCP 连接阶段,和 composer.json 写得对不对、PHP 版本是否兼容完全无关。别急着删 vendor 或重装 Composer——先确认能不能“通网”。
- 运行
ping packagist.org:如果返回 “unknown host”,说明 DNS 失败,不是超时,换 DNS(如8.8.8.8)比调超时更有效 - 运行
curl -I https://packagist.org:若卡住或报Failed to connect,说明防火墙、代理或网络策略在拦截,不是 Composer 配置问题 - 公司/学校网络下,
https://github.com和https://packagist.org常被统一策略屏蔽,手机热点一试便知
换镜像源不是“锦上添花”,而是国内用户的必选项
阿里云、腾讯云、清华等镜像不代理 Git 克隆,但能接管 90% 的元数据请求(即搜索包、查版本、读 composer.json),这是 Composer 卡住的最常见环节。用错旧镜像(如已下线的 https://packagist.phpcomposer.com)反而会稳定返回 404。
- 设阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 清华镜像注意末尾斜杠:
composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/ - 换完立刻清缓存:
composer clear-cache,否则 Composer 仍可能从旧缓存读失效地址 - 项目里硬编码了
"repositories"?它的优先级高于全局镜像,得手动删掉或改成可用地址
超时设置只对 HTTP 请求生效,别指望它解决 git clone 卡死
cURL error 28 看似是超时,但 Composer 安装分两步:第一步走 HTTP 查元数据(受 http.timeout 控制),第二步下载代码可能走 git clone(由 Git 自己决定超时)。改 Composer 配置对后者完全无效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 延长 HTTP 超时(仅影响元数据请求):
composer config -g http.timeout 600(单位秒) - 强制跳过 git,改用 zip 下载:
composer config -g github-protocols https(对 GitHub 包有效) - Git 自身超时要另配:
git config --global core.sshCommand "ssh -o ConnectTimeout=30" - CI/CD 中务必用环境变量固化:
COMPOSER_PROCESS_TIMEOUT=0,否则容器重启后配置丢失
“Generating autoload files” 卡住?这根本不是网络问题
安装命令停在这一行,且没报任何 Connection 或 resolve 错误,说明网络早通了。这是 autoloader 构建阶段在递归扫描文件,常见于 WSL2、Docker for Mac 或 NTFS 挂载路径下 symlink 解析极慢,或 APCu 扩展未启用 CLI 模式。
- 临时跳过生成:
composer install --no-autoloader,再手动运行composer dump-autoload --optimize - WSL2 用户检查
/etc/wsl.conf是否含metadata = true,否则vendor/下软链极慢 - 开了
apcu扩展?确认apc.enable_cli=1已写进php.ini,否则 autoload 构建会退化成全量文件扫描
真正难排查的,往往是“看起来像网络问题”的非网络问题:DNS 没配好却去调 timeout,autoloader 卡死却反复换镜像,或者私有包用了 git@ 协议却没配 SSH key——这些都比连不上 packagist.org 更隐蔽。

















