composer config -g repo.packagist 静默失效的三大硬伤是:键名错写为repos.packagist、漏掉type值composer、url末尾缺/;任一出错即静默回退packagist.org,验证须输出完整json对象如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。

composer config -g repo.packagist 静默失效的三大硬伤
它不报错,但只要写错一个地方,就直接退回到 packagist.org。最常见的是:repo.packagist 写成 repos.packagist(多一个 s),漏掉中间的 composer 类型参数,或者 URL 少了末尾斜杠 /。
验证是否真写进去了,只看这一条命令输出:composer config -g repo.packagist。正确结果必须是完整 JSON 对象,比如:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null、只返回 URL 字符串,或报 Key not found,都说明没生效。
别手动编辑 ~/.composer/config.json —— 容易格式出错,且 Composer 2.x 会忽略非法 JSON 直接 fallback。
镜像地址已下线?立刻切到当前可用源
阿里云镜像 https://mirrors.aliyun.com/composer/ 已返回 404;Laravel China 和 phpcomposer.com 全部下线。2026 年实测仍稳定的国内镜像只有三个:
- 华为云:
https://repo.huaweicloud.com/repository/php/ - 腾讯云:
https://mirrors.cloud.tencent.com/composer/ - 清华源:
https://mirrors.tuna.tsinghua.edu.cn/composer/
切换命令必须带 composer 类型和末尾 /,例如:composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/。执行后立即用 composer diagnose 查看 Repo packagist.org: 行,确认域名已更新。
换源后 still 卡在 Downloading?清缓存 + 删 lock 是硬性步骤
镜像只加速元数据拉取和 ZIP 下载,但前提是本地缓存和 composer.lock 里记录的 URL 要匹配新镜像。否则 Composer 会继续尝试访问旧地址,卡在 Loading composer repositories 或 Downloading。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
必须按顺序做三件事:
- 运行
composer clear-cache - 删掉项目根目录下的
vendor/和composer.lock - 再跑
composer install -vvv,盯着日志里第一行Downloading https://后面的域名是不是你刚配的镜像地址
如果日志里还是 packagist.org,说明项目级配置覆盖了全局:进项目目录执行 composer config repo.packagist(不加 -g),有输出就删掉 "repositories" 字段再试。
宝塔/CI 环境中全局配置不生效的真相
你在终端用 root 执行的 composer config -g,写进了 /root/.composer/config.json,但宝塔部署、计划任务、PHP 管理器默认以 www 用户运行,根本读不到 root 的配置。
解决方法只有一条:确认实际执行用户(比如 whoami 或查日志 UID),然后针对性配置。例如是 www 用户,就运行:sudo -u www composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/。
CI 脚本里也一样——前面用 sudo 配置,后面普通用户跑 composer install,照样无效。所有命令必须统一用户上下文。
镜像不是万能解药,它只管下载加速。如果卡在 Resolving dependencies 或报 Your requirements could not be resolved,问题大概率出在 PHP 版本约束过宽、require-dev 依赖爆炸,或者 CLI 的 php -v 和 Web 环境不一致——这些得另查,跟镜像无关。










