composer install卡在loading或downloading,90%因镜像未生效:需确保config -g repo.packagist命令键名正确、type为composer、url以/结尾,再清缓存、删lock文件,并用-vvv和curl验证请求是否真实命中镜像域名。

composer install 卡在 Loading composer repositories 或 Downloading,90% 不是网络差,而是镜像根本没生效——配错字段、漏清缓存、URL 少斜杠,三者任一出问题,命令就静默失败。
确认当前镜像是否真走国内地址
别只信 composer config -g repo.packagist 输出了 URL,要看 Composer 实际发请求的域名:
- 运行
composer install -vvv,盯住第一行日志:必须出现Downloading https://mirrors.aliyun.com/composer/packages.json(或清华、腾讯等对应域名) - 手动验证镜像连通性:
curl -I https://mirrors.aliyun.com/composer/packages.json,返回200 OK才算通;若 301、超时或 404,说明地址写错或被拦截 - 如果日志里还出现
packagist.org/packages.json,说明 fallback 了,全局配置被覆盖或失效
全局换源必须写对这三处,否则白配
以下命令缺一不可,且顺序不能乱:
- 键名必须是
repo.packagist(单数,不是repos.packagist) - 中间必须显式写
composer作为 type 值(不能省略,也不能换成https或其他字符串) - URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅,少斜杠会拼成/composerpackages.json导致 404
正确命令示例:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
项目级配置更可靠,尤其适合 CI 和团队协作
全局配置在 Docker、宝塔或 CI 中常因用户权限(如 www-data 读不到 root 的 ~/.composer/config.json)而失效。项目级配置直接写进 composer.json,随代码提交,行为一致:
- 进项目根目录,执行:
composer config repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/(不加-g) - 它会自动在
composer.json的repositories对象中追加packagist条目,不覆盖已有私有源 - 若
composer.json已有"repositories": [](数组),别手动覆盖,改用命令追加,否则私有包源会丢失
换源后仍卡住?先排除这几个真实瓶颈
镜像只加速元数据拉取和 ZIP 下载,不解决依赖解析阶段的问题:
-
Resolving dependencies卡住:和镜像无关,是 PHP 内存不足(默认 1.5GB 常不够),临时加大:php -d memory_limit=-1 composer install - 项目根目录
composer.json含repositories字段(哪怕空数组),就会屏蔽全局配置——用composer config --list和composer config --list --global对比确认实际生效的是哪个 -
composer.lock里记录的是原始packagist.org的 dist URL,换源后需强制刷新:composer update --lock - 某些包启用了
source(Git)模式,镜像只代理dist(ZIP),这类包仍直连 GitHub,无法通过换镜像加速
最易被忽略的是 composer clear-cache —— 缓存里存着旧的元数据,Composer 会优先读它,哪怕源已改,仍试图从 packagist.org 校验,结果就是卡在 DNS 或 TLS 握手。










