配置未生效,因composer config -g repo.packagist命令缺一不可地需满足四个硬性条件:必须带-g、键名严格为repo.packagist(单数小写)、第三参数显式写composer(type值)、url须https且末尾带/;验证需输出完整json对象,否则仍直连packagist.org。

composer config -g repo.packagist 输出不是镜像地址
说明配置根本没写进去,后续所有操作都还在直连 packagist.org。这不是网络慢,是命令压根没生效。
必须同时满足四个硬性条件,缺一不可:
-
-g参数不能省:没它就只改当前项目,换目录就失效 - 键名必须是
repo.packagist(单数、全小写),写成repos.packagist或packagist.org都无效 - 第三参数必须显式传
composer—— 这是type值,不是可选的,漏掉就静默 fallback - URL 必须以
https://开头且末尾带/,比如https://mirrors.aliyun.com/composer/,少斜杠会拼出/composerpackages.json导致 404
验证方式只有一种:运行 composer config -g repo.packagist,输出必须是完整 JSON 对象,例如:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。
如果为空、null、报错,或仍显示 https://packagist.org/,说明配置失败。
镜像地址在日志里没出现,还是 packagist.org
执行 composer install -vvv --no-progress 2>&1 | head -n 20,第一行请求 URL 才是真实走的地址。如果看到的是 GET https://packagist.org/packages.json,那镜像完全没走。
常见干扰项:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 项目级
composer.json中的repositories字段会**完全屏蔽**全局配置;哪怕只写了一行"packagist": false,也会关掉基础源 -
composer clear-cache没执行:旧缓存里的元数据仍指向境外地址,重试照样失败 - CI/CD 或 Docker 构建时,执行命令的用户和写配置的用户不一致(比如用
sudo配置但普通用户跑 install) -
COMPOSER_HOME环境变量被修改过,导致读取了错误的config.json
curl 测试镜像地址返回 404 或 TLS 握手卡住
手动验证镜像连通性最直接:
- 运行
curl -I https://mirrors.aliyun.com/composer/packages.json,应返回200 OK;返回404说明 URL 格式错了(大概率缺末尾/) - 运行
php -r "print_r(curl_version());",检查version_number是否 ≥0x073a00(即 cURL ≥ 7.58.0),否则 SNI 支持不稳定,HTTPS 握手常失败 - 某些旧版 OpenSSL(如 CentOS 6、macOS 自带老版本)或精简 Docker 镜像里,TLS 握手失败时
composer diagnose只报 WARNING,但composer update会卡在Loading composer repositories...几十秒后悄悄切回官方源
临时调试可用:export COMPOSER_DISABLE_TLS=1,再跑 composer update;如果这时能走镜像,基本锁定是 TLS 问题。
项目级配置追加失败或覆盖私有源
全局配置在团队协作中容易出问题,推荐项目级追加:
- 在项目根目录运行
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(去掉-g) - 这条命令会安全写入
composer.json的repositories字段,key 固定为packagist,不会覆盖已有私有源——前提是原repositories是对象{},不是数组[] - 如果原
repositories是数组,命令会报错;需先手动改成空对象"repositories": {}再执行 - 千万别手写
"packagist.org": false,这会彻底关掉基础包校验,连php或ext-json都装不上
临时验证某个镜像是否可用,又不想动配置?用 --repository-url 参数优先级最高:composer install --repository-url=https://mirrors.aliyun.com/composer/










