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

Composer卡在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.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
换镜像源必须写对命令,漏一个字符就静默失败
阿里云或腾讯云镜像配置失败时,不会报错、不提示、也不生效——它会自动fallback回官方源,你根本不知道自己还在走海外线路。
命令必须同时满足三项硬性要求:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(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而不是其他字段
Composer不认https_proxy或HTTP_PROXY环境变量,也不支持proxy这种模糊键名。唯一有效的是http.proxy配置项,且必须是完整URL格式。
- 全局代理设置:
composer config -g http.proxy "http://user:pass@proxy-host:port" - 若代理需HTTPS隧道(如某些企业网关),请确认代理服务本身支持CONNECT方法,否则
https请求会失败 - 用户名密码含特殊字符(如
@、/)必须URL编码,否则解析失败 - 代理配置与镜像源配置互不影响,但若镜像域名被代理拦截(如
mirrors.aliyun.com被公司防火墙重定向),仍可能超时
最易被忽略的一点:Composer在读取http.proxy后,会跳过系统级代理环境变量,也不会自动 fallback。一旦填错,连composer diagnose都可能卡住——所以每次改完务必用composer config -g http.proxy确认值是否如预期。










