Composer install卡在Downloading时,应先确认镜像是否真生效:执行composer config -g repo.packagist,输出必须为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}(末尾斜杠不可少),否则仍在直连packagist.org。

composer install 卡在 downloading?先确认镜像是否真生效
镜像没生效,缓存再大也白搭。90% 的“秒级安装”失败,是因为 composer config -g repo.packagist 写错了字段、漏了 composer type 或 URL 缺末尾斜杠。执行后必须验证输出:
- 运行
composer config -g repo.packagist,输出应为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}(注意斜杠不能少) - 若输出为空、
null、或仍是https://packagist.org,说明配置失败,composer install仍在直连欧洲源 - 项目级
composer.json中若有"prefer-source": true,会强制覆盖全局--prefer-dist,必须删掉 - CI 环境中,
root用户配的全局镜像,对www或runner用户无效,得用sudo -u www composer config -g ...
缓存没提速?检查三个关键位置是否真被复用
Composer 缓存分三层,但只有两层影响安装速度:files/(dist ZIP 包)和 repo/(元数据)。vendor/ 目录重建 ≠ 缓存失效,而是根本没读到缓存。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
~/.composer/cache/files/目录为空?说明 dist 包根本没进缓存——大概率是镜像未生效,fallback 到 source 下载,而国内镜像几乎不缓存 source - CI 流水线里没声明
cache: paths:,vendor/和.composer/cache都是全新目录,每次从零开始 - 用了
composer update却指望缓存加速?它会清空旧缓存并重新解析依赖树,等效于首次安装 - 本地开发删过
~/.composer或重装系统,缓存就丢了;CI 中建议显式 cache$HOME/.composer/cache而非只 cachevendor
并发下载设多少才真快?别盲目堆数字
parallel-downloads 是 Composer 2.2+ 原生机制,但它不是多线程,而是 cURL multi 并发 HTTP 请求。设太高反而触发临时文件竞争,报 file_put_contents(/tmp/): failed to open stream。
- Linux/macOS 推荐设为
10:composer config -g parallel-downloads 10 - Windows 推荐设为
6:NTFS 文件系统对并发写入更敏感 - 值设为
20在低配 CI 或企业内网常失效,降到6–8更稳 - 该参数依赖镜像支持 HTTP/2 多路复用;阿里云、清华、腾讯镜像都支持,私有源若不支持,设高了也白搭
- 运行
composer --version确认 ≥ 2.2;若是 1.x,先composer self-update
为什么开了 --prefer-dist 还慢?关键在 fallback 行为
--prefer-dist 的作用是跳过 git clone,直接下 ZIP。但它有个硬前提:镜像必须已生效。否则会静默 fallback 到 source,而国内镜像几乎不缓存 source,结果比不开还慢。
- 必须同步执行
composer clear-cache,否则缓存里还存着旧的packages.json,Composer 会继续按旧地址拉校验信息 - 某些包硬编码 GitHub URL(如
"dist": {"url": "https://github.com/xxx/yyy/archive/"}),这类不会走镜像,会撞上 GitHub Rate Limit;报错含GithubRateLimitException就是它 -
composer install -vvv日志里若出现Downloading https://api.github.com/或大量Cloning git@github.com:,说明 fallback 已发生 - CI 中建议加
--no-interaction --prefer-dist,避免交互卡住,且明确启用 dist 模式
clear-cache,以及 CI 中 cache: paths: 必须同时包含 vendor 和 $HOME/.composer/cache。

















