“resolving dependencies”卡住主因是dns解析失败或超时,非网络下载问题;需检查/etc/resolv.conf、预埋/etc/hosts映射镜像域名ip、验证repo.packagist配置(含末尾/)、清缓存并禁用xdebug。

为什么composer create-project卡在“Resolving dependencies”不是网络慢
这个阶段根本不发网络请求,而是 PHP 在本地解析依赖图——但 DNS 解析失败或超时会直接阻塞整个流程。比如 composer.json 里写了 "laravel/framework": "^11.0",Composer 需要先查 packagist.org 的元数据索引,而查之前得先把域名转成 IP。如果虚拟机或容器里 /etc/resolv.conf 指向一个响应慢、被劫持或已失效的 DNS(如宿主机转发的 192.168.64.1),getaddrinfo() 就会卡住几秒甚至超时重试,日志里却只显示 “Resolving dependencies…” 停住不动。
改 /etc/resolv.conf + 预埋 /etc/hosts 是最硬核的提速方式
别依赖 systemd-resolved 或 Docker 默认 DNS,直接控制解析链路:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 编辑
/etc/resolv.conf,只留两行:nameserver 114.114.114.114和nameserver 223.5.5.5(阿里云 DNS 更稳,114 是兜底) - 用
curl -I https://mirrors.aliyun.com/composer/拿到当前真实 IP(比如223.6.6.6),然后写进/etc/hosts:223.6.6.6 mirrors.aliyun.com packagist.org github.com githubusercontent.com - 若用 Docker,启动时加
--dns 114.114.114.114 --dns 223.5.5.5,或在daemon.json里全局配"dns" - 禁用
systemd-resolved:运行sudo systemctl disable --now systemd-resolved,防止它偷偷覆盖resolv.conf
composer config -g repo.packagist 必须配,且 URL 末尾要有斜杠
镜像源不生效,90% 是因为 URL 写错或版本不匹配:
- Composer ≥2.2:执行
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意末尾/) - Composer 1.x:必须用
repos.packagist(带 s),且值是 JSON 字符串:composer config -g repos.packagist '{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}' - 验证是否生效:
composer config -g repo.packagist输出应为完整 URL;再跑composer show packagist/support -vvv,看日志里请求的是mirrors.aliyun.com而非packagist.org - 配完立刻清缓存:
composer clear-cache,否则旧元数据仍走海外源
别让挂载目录和 xdebug 暗中拖垮 DNS 效果
DNS 优化只是前提,环境配置不对照样白搭:
- VirtualBox/VMware 中,别在宿主机挂载目录(如
/Users/xxx/project → /var/www)里直接跑composer install——文件系统桥接层会让 DNS 查询+TLS 握手双重延迟,resolv.conf再准也救不了 - 确认没开 xdebug:
php -v看输出里有没有xdebug;有就临时关掉:php -d xdebug.mode=off $(which composer) create-project laravel/laravel - 内存不足也会伪装成 DNS 卡顿:
COMPOSER_MEMORY_LIMIT=-1 composer create-project ...排除 OOM 导致的解析中断 -
composer.lock若残留已下线包(如旧版laravel/ui),会触发回退搜索逻辑,强制重试所有镜像节点——删掉vendor/和composer.lock再试
parallel-downloads 或换 PHP 版本,却漏掉 /etc/hosts 里一行 IP 映射——这才是初始化快与慢之间最薄的那层纸。










