正确命令是composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/,必须严格满足键名准确、显式声明type值、url末尾带斜杠,否则composer 2.2+会静默回退至官方源且不报错。

composer config -g repo.packagist 为什么没反应
不是命令没运行,是 Composer 2.2+ 完全忽略错误配置,且不报错——它只认 repo.packagist 这个精确键名,多一个 s(如 repos.packagist)、少 -g、漏掉中间的 composer 类型值、URL 缺末尾 /,任意一项出错都会静默 fallback 到 https://packagist.org。
验证是否写入成功,只看这一行:composer config -g repo.packagist。正确输出必须是完整 JSON 对象,例如:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};返回空、null、报错或纯 URL 字符串(新版部分行为),都说明失败。
-
repo.packagist是唯一合法键名,repositories.packagist.org虽兼容但非官方推荐,优先用前者 - 中间的
composer是type值,不是注释,不能省略或替换成https - URL 必须 HTTPS + 末尾
/,https://mirrors.tuna.tsinghua.edu.cn/composer❌ → 会请求/composerpackages.json直接 404
全局配置在宝塔或 CI 里为啥不生效
因为全局配置默认写进 /root/.composer/config.json,而宝塔后台、Docker 容器、GitHub Actions runner 大多以 www 或 runner 用户身份执行 composer 命令,根本读不到 root 的配置文件。
临时解决办法是显式切换用户再配:sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。但更稳的做法是放弃全局,直接进项目根目录运行:composer config repo.packagist composer https://mirrors.huaweicloud.com/repository/php/(不带 -g)——它会自动安全合并进 composer.json 的 repositories 字段,Git 可追踪,CI 可复现。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 若
composer.json原有"repositories": []数组结构,该命令会追加新项,不覆盖私有源 - 若
"repositories": {}是对象,命令会转为标准数组并插入"packagist"条目 - 千万别手动写
"packagist": false,这会导致基础扩展(如ext-json)校验失败
换源后 composer install 还卡在 Loading repositories
说明镜像根本没被用上,90% 是缓存没清干净:Composer 优先读本地元数据缓存和 composer.lock 中记录的旧地址,哪怕你刚配完新源,它仍可能反复请求 packagist.org。
必须按顺序操作:composer clear-cache → 删除项目下 vendor/ 和 composer.lock → 再跑 composer install -vvv。最后几行日志里出现 Reading packages.json from cache at /https---mirrors-aliyun-com-composer/ 才算真正走镜像;如果还看到 packagist.org/packages.json,就是没清理到位。
-
-vvv是关键开关,不加就看不到真实请求域名 - 华为云源地址是
https://mirrors.huaweicloud.com/repository/php/,腾讯云是https://mirrors.cloud.tencent.com/composer/,阿里云是https://mirrors.aliyun.com/composer/,三者末尾/都不能少 - 已停用的旧源如
https://packagist.phpcomposer.com会返回 404,别再试
composer update 卡在 Resolving dependencies 怎么办
换镜像源对这个阶段完全无效——镜像只加速包文件下载(.zip / .tar),不参与依赖解析。卡在这里,问题一定出在本地环境或 composer.json 写法上。
典型诱因包括:"php": "^7.4 || ^8.0" 这类宽泛约束会让 Composer 尝试海量版本组合;require-dev 里塞了太多未锁定的工具包;或引入了大量 dev-main 这类不稳定分支。
- 先跑
composer diagnose看Available repositories:行是否显示你配的镜像域名 - 检查
composer.json中是否有"packagist.org": false,有就删掉,否则基础包无法解析 - 临时降级测试:把 PHP 版本约束收紧到
"php": "^8.1",再composer update --dry-run看是否提速










