Composer install卡住90%因镜像未生效:键名必须为repo.packagist(单数)、type必须显式设为composer、URL须以/结尾,三者缺一即静默回退packagist.org;需用composer config -g repo.packagist验证输出为完整JSON,并通过composer install -vvv确认首行日志命中镜像域名。

Composer install 卡住,90% 是镜像没生效,不是网络差、不是服务器慢,而是配置写错了却静默 fallback 到 packagist.org。
composer config -g repo.packagist 命令为什么总不生效
这条命令看似简单,但漏掉任意一个要素就会完全失效,且不报错:
- 键名必须是
repo.packagist(单数),写成repos.packagist或repositories就不会写入任何有效配置 - 命令末尾必须显式指定
composer作为 type 值:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/✅;漏掉composer就直接退回到官方源 ❌ - URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅;https://mirrors.aliyun.com/composer❌(拼接路径变成/composerpackages.json,返回 404) - 验证是否真写进去了:运行
composer config -g repo.packagist,输出必须是完整 JSON 或纯 URL 字符串,形如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};空、null、或含packagist.org,说明根本没配对
项目级 repositories 字段会彻底屏蔽全局镜像
只要项目根目录的 composer.json 里存在 "repositories" 字段(哪怕只是空数组 [] 或空对象 {}),Composer 就会跳过全局 repo.packagist 配置,强制走项目级定义。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 检查方法:
grep -n '"repositories"' composer.json - 常见陷阱:ThinkPHP 官方模板、Laravel 旧项目自带已下线的
laravel-china.org镜像声明,删掉比修它更快 - 临时绕过:
composer install --repository=https://mirrors.aliyun.com/composer/ - 彻底清理(谨慎):
sed -i '/"repositories":/,/],/d' composer.json(注意保留缩进)
清缓存不是万能的,但不清一定不行
composer clear-cache 只清 composer config --global cache-dir 返回的那个目录,不保证是 ~/.composer/cache —— CI 环境常挂载到 NFS,清错位置等于白干。
- 先查真实路径:
composer config --global cache-dir,再看大小:du -sh $(composer config --global cache-dir) - 不到 200 MB 别清;超 1.5 GB 且半年没碰老项目,才值得动手
- 如果路径显示
/mnt/nfs/composer-cache,说明缓存不在本地磁盘,清它可能影响其他构建节点 - 换源后仍卡在
Loading composer repositories?大概率是镜像根本没配对,清缓存无效
验证是否真走国内镜像的三步法
别信“我刚执行了命令”,要亲眼看到请求发到了哪里:
- 第一步:运行
composer config -g repo.packagist,确认输出为完整 JSON 或正确 URL 字符串 - 第二步:运行
composer diagnose,观察 “Repo” 行是否显示mirrors.aliyun.com或对应镜像域名 - 第三步:运行
composer install -vvv,盯住第一行日志 —— 必须出现类似Downloading https://mirrors.aliyun.com/composer/packages.json;若仍是packagist.org/packages.json,说明 fallback 了
最常被忽略的点:项目根目录存在 composer.json 且含 "repositories" 字段时,全局配置完全失效;而 Resolving dependencies 卡住和镜像无关,那是内存、xdebug 或 platform 版本约束的问题。

















