必须执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,三要素缺一不可:-g表示全局、键名严格为repo.packagist(单数)、type值必须显式写composer,url须https且末尾带/,否则静默失效。

composer config -g repo.packagist 必须执行,否则默认走 packagist.org
国内直连 packagist.org 基本不可用,不是你网络差,而是 DNS 解析慢、TLS 握手失败、首字节延迟高三重卡点。换镜像源不是“可选项”,是所有优化的前提。
执行 composer config -g repo.packagist 查看当前全局源,输出必须是类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 的完整结构。空值、null 或仍显示 https://packagist.org,说明没生效。
- 别写成
repos.packagist(多一个s就彻底无效,且不报错) - URL 末尾必须带
/,https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(少斜杠会拼出/p2//类路径,直接 404) - 漏掉
-g参数就只改当前目录的composer.json,换个项目就失效
curl -I https://mirrors.aliyun.com/composer/packages.json 必须返回 200
镜像配置成功 ≠ 镜像服务可用。很多“换了源还慢”其实是镜像临时不可用或同步延迟。
用 curl -I https://mirrors.aliyun.com/composer/packages.json 测试,秒回 HTTP/2 200 才算靠谱。若超时、503 或 404,得换源(如试 https://mirrors.tuna.tsinghua.edu.cn/composer/)或查代理设置。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 别信
composer install -vvv日志里出现镜像域名就万事大吉——它可能只是 metadata 请求走了镜像,后续 ZIP 下载仍 fallback 到原源 - 清华、阿里、腾讯镜像同步频率高(通常 ≤5 分钟),比已下线的
packagist.phpcomposer.com可靠得多
http-max-concurrent-downloads 10 比 parallel-downloads 更关键
parallel-downloads 是 Composer 2.2 初期的过渡配置项,**已弃用**;新版只认 http-max-concurrent-downloads。设了前者完全不生效,也无任何提示。
查当前值:composer config -g http-max-concurrent-downloads。如果不是 8–10,就补上:composer config -g http-max-concurrent-downloads 10。
- 别设成
20:高并发易触发file_put_contents(/tmp/): failed to open stream,降到6–8更稳 - 旧版 Composer(1.x)不支持该参数,先运行
composer --version确认;若是1.x,必须composer self-update --prefer-dist - 已装过
hirak/prestissimo的必须卸载:composer global remove hirak/prestissimo,它在 2.x 中已失效,甚至会静默降级为单线程
Resolving dependencies 卡住和镜像无关,要查 PHP 环境
镜像只加速下载,不加速依赖解析。Resolving dependencies 阶段卡住,和网络无关,典型原因有:
-
COMPOSER_MEMORY_LIMIT过低(如默认128M),导致依赖图解析失败重试 —— 临时加COMPOSER_MEMORY_LIMIT=-1再试 - 启用了 Xdebug(运行
php -v可确认),会让解析慢 5–10 倍 —— 用php -d xdebug.mode=off $(which composer) install临时禁用 -
"platform"配置与实际 PHP 版本不匹配(如"php": "7.4"却在 PHP 8.2 上运行),触发降级查找逻辑 -
composer.lock残留已下线包的引用,导致回退搜索 —— 删掉vendor/和composer.lock,再用composer install --no-cache
这个阶段最容易被误判为“镜像没用”,其实问题根本不在网络层,而藏在 PHP 配置、xdebug、platform 声明这些本地细节里。










