已启用全局中文镜像可通过 composer config -g repo.packagist 查看,若输出为国内源地址则已生效;移除需执行 composer config -g --unset repo.packagist,并检查环境变量、shell alias 及封装脚本,最后用 composer diag 和 -vvv 日志验证是否真正恢复至 packagist.org。

确认当前是否启用了全局中文镜像
Composer 的全局镜像配置通常写在 ~/.composer/config.json(Linux/macOS)或 %USERPROFILE%\Application Data\Composer\config.json(Windows)里。如果之前执行过类似 composer config -g repo.packagist composer https://packagist.phpcomposer.com 这类命令,大概率已生效。
直接运行以下命令查看当前全局配置:
composer config -g repo.packagist
如果输出是类似 {"type": "composer", "url": "https://packagist.phpcomposer.com"} 或其他国内源地址,说明镜像已启用。
用 composer config 删除全局镜像配置
最稳妥的方式是把 repo.packagist 这个键值对从全局配置中彻底移除,而不是覆盖成官方地址——否则可能残留无效字段或引发兼容问题。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
composer config -g --unset repo.packagist - 再运行
composer config -g repo.packagist确认返回Cannot find package repo.packagist即成功 - 如果提示
Could not find config key: repo.packagist,说明原本就没设,无需操作
检查是否被环境变量或脚本劫持
有些第三方工具(比如某些 PHP 集成环境、IDE 插件、甚至自定义 shell alias)会通过 COMPOSER_REPO_PACKAGIST 环境变量或 wrapper 脚本强制改写源。这类情况不会出现在 config.json 里,但依然生效。
- 运行
echo $COMPOSER_REPO_PACKAGIST(Linux/macOS)或echo %COMPOSER_REPO_PACKAGIST%(Windows),非空则需清理该变量 - 检查 shell 配置文件(如
~/.bashrc、~/.zshrc)里是否有alias composer=...或函数包装 - 运行
which composer,如果指向的是某个封装脚本而非真实二进制路径(如/usr/local/bin/composer),要检查该脚本内容
验证是否真正恢复为官方源
仅靠 config 清理还不够,必须验证实际请求行为。Composer 1.x 和 2.x 对镜像的处理逻辑不同,且部分镜像服务(如腾讯、阿里)会返回 302 重定向,容易误判。
- 执行
composer diag,关注输出中 “Repo: https://packagist.org” 是否出现 - 运行
composer show -p | head -n 5,观察包列表是否来自 packagist.org 域名(不是镜像域名) - 加
-vvv参数触发详细日志:composer require monolog/monolog -vvv 2>&1 | grep -i 'packagist\|url',确认实际请求 URL 是https://packagist.org
注意:Composer 2.2+ 默认启用 packagist.org 的 HTTPS 强制校验,若本地 CA 证书异常,即使镜像已关也可能报 SSL 错误——这不是镜像问题,别往回折腾。

















