直接运行composer config -g repo.packagist查看输出,若为空、null或显示https://packagist.org则未生效;正确应返回类似{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}的json,且需进项目目录去掉-g再查是否被composer.json中repositories字段覆盖。

怎么确认当前走的是哪个源
直接运行 composer config -g repo.packagist,看输出。空、null 或 https://packagist.org 就说明没换成功;返回类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 才算生效。注意:这个命令只查全局配置,项目级是否被覆盖得进项目目录后去掉 -g 再跑一次。
全局换阿里云镜像最稳写法
在 PowerShell 或 CMD 里执行这一行(大小写、空格、斜杠都别改):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
常见踩坑点:
-
repo.packagist不能写成repos.packagist(多一个s就失效) - 中间的
composer是 type 值,漏掉会导致 fallback 到官方源 - URL 必须是 HTTPS,且末尾必须有斜杠,
https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌ - Windows 下如果提示 “Could not write to …”,加
--no-plugins重试
为什么换了源还是卡在 Downloading…
镜像只加速元数据(composer.json 描述)下载,不解决以下本地耗时环节:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- ZIP 包解压(尤其含大量小文件的包)
- PHP 扩展编译(比如
ext-redis、ext-swoole) -
autoload生成或vendor/autoload.php写入 - 公司代理或防火墙拦截了
mirrors.aliyun.com(浏览器打开试试)
如果卡在 Resolving dependencies 阶段,和镜像完全无关——大概率是 composer.json 里 PHP 版本约束太宽、require-dev 塞了太多未锁定版本的工具链。
宝塔/CI/计划任务里镜像不生效?
全局配置写在 C:\Users\用户名\AppData\Roaming\Composer\config.json(Windows),但它只对以该用户身份运行的 Composer 命令有效。宝塔后台、计划任务常以 www 用户运行,根本读不到你的个人配置。
解决方法:
- 先确认实际执行用户:在宝塔终端里运行
whoami - 再用对应用户执行配置命令,例如:
sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - CI 脚本中确保
composer config -g和后续composer install是同一用户权限下执行
项目级配置(写进 composer.json)不受用户影响,更适合团队协作和 CI 场景,但务必用命令追加,别手写 JSON —— 否则容易覆盖私有包源或格式出错。










