卡在Resolving dependencies是DNS解析问题,非timeout可解决;应测DNS、换DNS服务器、检查hosts或用热点验证;卡在Downloading才需调http.timeout至600秒。

卡在 Resolving dependencies 是 DNS 问题,不是 timeout 设置能解决的
这一步根本没发 HTTP 请求,Composer 只在查 mirrors.aliyun.com 或 packagist.org 的 IP 地址。改 http.timeout 完全无效,纯属白等。
常见现象包括:Could not resolve host、unknown host、ping packagist.org 失败。
- 先手动测 DNS:运行
dig mirrors.aliyun.com @114.114.114.114,看是否返回正确 IP - 临时换系统 DNS:Linux/macOS 改
/etc/resolv.conf加nameserver 8.8.8.8;Windows 在网络适配器里手动设 - 检查
/etc/hosts(或C:\Windows\System32\drivers\etc\hosts)是否误写了错误的packagist.org映射 - 用手机热点试一次——很多企业网会屏蔽
packagist.org和github.com,但热点通常通
卡在 Downloading 才该调 http.timeout,建议设为 600
这才是真正的 HTTP 层超时,http.timeout 控制每次请求从 DNS 查询、TLS 握手到响应头返回的总时间,默认仅 60 秒,对国内镜像或大包明显不够。
- 全局设置(推荐):
composer config -g http.timeout 600 - 项目级更稳妥(CI 友好):在
composer.json的"config"段加"http.timeout": 600 - 临时调试优先用环境变量:
COMPOSER_HTTP_TIMEOUT=600 composer install,避免污染配置 - 注意:
process-timeout在这里完全不生效;PHP CLI 的default_socket_timeout也会干扰,可绕过:php -d default_socket_timeout=600 $(which composer) install
换阿里云镜像源必须写对命令,漏一个字符就静默失败
命令必须同时满足三项硬性要求,否则不报错、不提示、也不生效:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 键名是
repo.packagist(注意是repo单数,不是repos) -
composer是 type 值,不能省略(写成composer config -g repo.packagist https://...就 fallback 到官方源) - URL 必须是 HTTPS,且末尾带斜杠:
https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌
正确命令(可直接复制):composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否真正生效:composer config -g repo.packagist 应输出 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。如果返回空、null 或仍是 "https://packagist.org",说明配置失败。
需要代理时,用 http.proxy 而不是系统级 proxy 设置
Composer 不读系统环境变量 HTTP_PROXY,必须显式配置。
- 设 HTTP 代理:
composer config -g http.proxy http://proxy.example.com:port - 设 HTTPS 代理:
composer config -g http-proxy https://proxy.example.com:port(注意是http-proxy键,不是https.proxy) - 无需时记得清除:
composer config -g --unset http.proxy和composer config -g --unset http-proxy - 若代理需认证,URL 中带上用户信息:
http://user:pass@proxy.example.com:port
镜像源和代理可以共存,但要注意:镜像只加速公共包下载,对 git@ 或 https://github.com/xxx 类私有 VCS 包无效;代理则对所有 HTTP(S) 请求生效。

















