最准最快查全局镜像配置的方式是运行composer config -g repo.packagist,输出必须为完整json如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"},空、报错或显示官方源说明未生效;再用composer require -vvv | grep "get https"验证真实请求地址,并确保执行composer clear-cache及重建composer.lock。

直接查全局配置项 repo.packagist
最准、最快的方式就是运行 composer config -g repo.packagist。它只读取 ~/.composer/config.json(Windows 是 %APPDATA%\Composer\config.json),不依赖缓存、网络或当前目录,三秒内就能确认镜像是否真正写入。
输出应为完整 JSON,例如:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
若为空、报错 Key "repo.packagist" does not exist,或输出 https://packagist.org,说明没配或配错。
- 漏掉
-g参数 → 查的是当前项目级配置,不是全局 - 键名拼错(如
repos.packagist、repositories.packagist.org)→ Composer 2.2+ 静默忽略 - PowerShell 中 URL 被截断 → 加引号:
composer config -g "repo.packagist"
看真实请求日志,别信“好像快了”
配置写了 ≠ 实际发出去了。缓存、环境变量、插件都可能干扰。必须用 -vvv 观察真实 HTTP 请求:
执行:composer require monolog/monolog -vvv 2>&1 | grep "GET https"
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
关键看这一行:
✅ GET https://mirrors.aliyun.com/composer/packages.json → 真在走镜像
❌ GET https://repo.packagist.org/packages.json → 还在连官方源
- 执行前务必先
composer clear-cache,否则旧元数据缓存会掩盖配置变更 - 如果输出里有
COMPOSER_REPO_PACKAGIST环境变量,它优先级最高,会静默覆盖repo.packagist设置 - 某些 IDE 或 CI 工具自带 Composer 插件,可用
composer --no-plugins show -p -v对比验证
别被 composer diagnose 欺骗
composer diagnose 完全不检查镜像配置是否生效。它只验证 PHP 环境、cURL 和 openssl 是否可用,即使你把 repo.packagist 写成 repos.packagist 或 URL 少了末尾 /,它仍显示 OK,但后续命令必然卡在 Resolving packages 或 404。
真正能暴露问题的只有两个命令:
• composer config -g repo.packagist —— 输出必须是合法 JSON
• composer config --list | grep repositories —— 查当前上下文实际生效的源,确认不是项目级 composer.json 里的旧配置覆盖了全局
-
composer diagnose的 “Repo” 行显示地址 ≠ 当前生效源,它只是回显配置文件里读到的内容,不发起真实请求 - 某些镜像站首页返回 200,不代表
/p2/monolog/monolog.json这类真实接口可用,必须用curl -fsSL --max-time 3 https://mirrors.aliyun.com/composer/p2/monolog/monolog.json | jq -e 'has("packages")'验证
注意 composer.lock 里的 dist URL 不会自动更新
哪怕镜像已生效,composer.lock 文件里记录的 dist.url 仍可能是 https://packagist.org。这会导致 composer install 先尝试旧地址,超时后才 fallback 到镜像——看起来还是慢。
- 换源后必须删掉
vendor和composer.lock,再跑composer install生成新 lock 文件 - 或者强制刷新 lock:
composer update --lock,确保所有包的dist.url指向镜像站 - CI 环境中尤其要注意,不能只改配置就跳过 lock 文件重建
composer.lock 里记的是新地址。这三个环节各自独立,漏一个,镜像就形同虚设。










