镜像配置没起作用是因为 composer 静默回退至官方源,根本原因是 composer config -g repo.packagist 命令未同时满足四个硬性条件:键名必须为单数 repo.packagist、第三个参数 composer 是必填 type 值、url 必须 https 且末尾带 /、必须加 -g 参数;任一缺失即失效,且无报错提示。

镜像配置没起作用,不是网络慢或镜像坏了,而是 Composer 根本没读到你写的配置——它静默回退到 https://packagist.org,连错误都不报。
composer config -g repo.packagist 命令写错了
这条命令看着简单,但漏掉任意一个硬性条件就等于没执行:
-
repo.packagist必须是单数,写成repos.packagist或repositories.packagist.org都无效 - 第三个参数
composer是type值,不是可选说明,不能省 - URL 必须以
https://开头,且末尾带/,比如https://mirrors.aliyun.com/composer/✅,少斜杠就是404 - 必须加
-g,否则只改当前目录的composer.json,换项目就失效
验证是否写入成功:运行 composer config -g repo.packagist。输出必须是完整 JSON,例如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null、报错或只返回 URL 字符串,都说明没写对。
项目级 repositories 字段正在覆盖全局配置
Composer 的源优先级是:项目级 composer.json 中的 repositories > 全局配置 > 默认源。哪怕你全局配对了,只要项目里有这个字段,就会屏蔽全局设置。
- 检查方式:
composer config repo.packagist(不带-g),有输出就说明项目自己写了镜像 - 常见陷阱:
"repositories": {}或"repositories": []这种空结构也会触发覆盖 - 临时清理:
composer config --unset repositories(注意没-g)
别手动编辑 composer.json 里的 repositories,容易格式出错;要用 composer config 命令追加或重置。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
缓存没清,配置白配
Composer 缓存的是 packages.json 和 provider 文件路径(如 p/provider-2025-10%24.json)。改了镜像但不清缓存,它仍按旧元数据发起请求,结果就是 404、找不到包、锁文件错乱。
- 必做动作:
composer clear-cache - 验证是否清空:
ls -la ~/.composer/cache/(Linux/macOS)或dir %APPDATA%\Composer\Cache\(Windows),应为空或只剩空子目录 - 更彻底方式:先执行
composer config -g cache-dir /tmp/composer-cache-empty,再clear-cache
清完缓存后,用 composer install -vvv | grep "Downloading.*packages.json" 确认第一行请求域名是你配的镜像地址。
宝塔、CI 或 Docker 里根本没读到你的全局配置
全局配置默认写在 /root/.composer/config.json,但它只对 root 用户生效。宝塔「PHP 管理」、计划任务、GitHub Actions 默认以 www 或其他用户运行,压根读不到。
- 给实际执行用户配:
sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - CI 环境(如 GitHub Actions)必须在 workflow 中显式执行两条命令:
composer config -g repositories.packagist.org.type composercomposer config -g repositories.packagist.org.url https://mirrors.aliyun.com/composer/ - Docker 构建时,记得挂载时间同步和本地时区:
-v /etc/localtime:/etc/localtime:ro,否则系统时间偏差会导致签名校验失败
真正起作用的永远不是“我配了”,而是“Composer 实际发出去的请求地址”。最准验证只有两个动作:看 -vvv 日志里的 Downloading 行,以及用 curl -I 直打镜像根路径。










