禁用 Composer 镜像源需逐层删除所有显式配置:彻底移除项目 composer.json 中的 "repositories" 块、全局配置中的 repos.packagist 键、以及环境变量 COMPOSER_REPO_PACKAGIST,再清缓存并用 composer install -vvv 或 diagnose -v 验证请求是否指向 packagist.org。

禁用当前 Composer 镜像源,本质不是“关掉一个开关”,而是**逐层删除所有显式声明的镜像配置项**。只要 repos.packagist 这个键还存在(哪怕 URL 写错了),Composer 就会尝试请求它;只有彻底删掉这个键,才会回退到默认的 https://packagist.org。
确认镜像是否真的在生效
别只看 composer config -g repo.packagist 的输出——它只反映全局配置,而实际生效顺序是:项目级 composer.json > 全局配置 > 默认源。所以:
- 运行
composer config -g repos.packagist(注意是repos.packagist,不是repo.packagist)检查全局是否设置了镜像 - 进项目目录,运行
composer config repos.packagist看项目级是否有覆盖 - 打开项目根目录下的
composer.json,搜索"repositories"字段,看里面是否包含"url": "https://mirrors.xxx.com/composer"这类条目 - 检查环境变量:
echo $COMPOSER_REPO_PACKAGIST(Linux/macOS)或echo %COMPOSER_REPO_PACKAGIST%(Windows)
删除全局镜像配置(最常见入口)
很多人误用 repo.packagist(少了个 s),导致删不干净。正确命令是:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer config -g --unset repos.packagist—— 这才是清掉全局镜像的唯一可靠方式 - 如果之前用过旧语法如
composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/,也必须用--unset repos.packagist清理,新版 Composer 已不识别repo.*写法 - 删完再跑一次
composer config -g repos.packagist,应返回空或报错 “Key does not exist”
清理项目级和环境变量残留
即使全局清了,项目里一条 "repositories" 就能让镜像继续生效:
- 编辑项目根目录的
composer.json,整块删掉"repositories": [...]字段(包括里面任何 type=composer、url 指向镜像的条目) - 若项目中曾写过
"packagist": false,必须一并删掉——它会彻底屏蔽 packagist.org,连官方源都不可用 - 执行
unset COMPOSER_REPO_PACKAGIST(Linux/macOS)或set COMPOSER_REPO_PACKAGIST=(Windows CMD)清除环境变量 - 最后运行
composer clear-cache,否则旧镜像的元数据可能仍被复用
验证是否真的回到 packagist.org
配置输出正常 ≠ 实际请求走官方源。最准的验证方式是抓真实 HTTP 请求:
-
composer install -vvv 2>&1 | grep -i 'GET https'(Linux/macOS),观察日志里出现的域名是不是packagist.org - 或直接
composer diagnose -v,末尾明确显示 “Checking https://packagist.org/packages.json” 才算成功 - 注意:Composer ≥2.2 启用了自动 fallback,即使你没配镜像,某些网络环境(如公司 DNS 劫持)仍可能把
packagist.org解析到国内镜像 IP——这不是配置问题,得查网络层
真正难搞的不是删配置,而是项目里藏着的 "repositories" 块和环境变量;它们比全局配置更优先,也更容易被忽略。

















