composer config -g repo.packagist 静默失效是因为三个硬伤缺一不可:键名必须为单数repo.packagist(非repos或repositories)、必须显式指定type值composer、url须以/结尾;任一出错即静默回退至packagist.org。

composer config -g repo.packagist 为什么静默失效
它根本不会报错,但只要写错一个字符就彻底不生效——不是“部分生效”,是直接退回到 packagist.org。最常见三个硬伤:
• repo.packagist 写成 repos.packagist(多一个 s)或 repositories.packagist.org(新版字段名,但和旧命令不兼容)
• 漏掉中间的 composer type 值,比如写成 composer config -g repo.packagist https://mirrors.aliyun.com/composer/
• URL 少了末尾 /,导致请求路径拼成 /composer/packages.json 而不是 /packages.json,返回 404
怎么确认镜像真正在用,而不是“我以为它在用”
别信 composer config -g repo.packagist 的输出,它只告诉你“配置存了什么”,不反映实际行为。真正证据只有网络请求:
• 运行 composer diagnose,找到 Repo packagist.org: 这一行,后面域名必须是 mirrors.aliyun.com 或你配的镜像域名
• 执行 composer require monolog/monolog --no-install -vvv,第一行日志里 Downloading https:// 后面的地址才是真实走的源
• 如果仍看到 packagist.org,立刻检查项目级覆盖:进项目目录运行 composer config repo.packagist(不带 -g),有输出就说明 composer.json 里的 "repositories" 字段正在生效
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
临时切源比永久配置更安全
尤其在 CI、调试、或者帮别人跑命令时,改全局配置容易污染环境,也难追溯问题。
• 单次命令指定源:composer create-project laravel/laravel myapp -r https://mirrors.aliyun.com/composer/
• 仅当前项目生效(不写进 composer.json):composer config repo.packagist composer https://mirrors.ustc.edu.cn/composer/
• 强制绕过所有配置:composer install -vvv --repository-url=https://mirrors.huaweicloud.com/repository/php/composer/,适合快速验证镜像是否可用
换源后仍失败,大概率不是镜像问题
镜像只加速下载,不解决依赖解析卡顿或平台约束失败。
• 如果卡在 Resolving dependencies 几十秒以上,检查 composer.json 中的 PHP 版本约束是否太宽(如 "php": "^7.4 || ^8.0")、require-dev 是否塞了大量未锁定版本的工具包
• 报 Your requirements could not be resolved,先确认 CLI 的 PHP 版本:php -v 和 which php,再对比 composer.json 中 config.platform.php 或 require.php 声明
• Connection refused 或 cURL error 60,优先查系统时间是否偏差 >5 分钟、OpenSSL 的 default_cert_file 是否存在且可读










