正确配置 Composer 全局镜像的命令是 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,必须带 -g 参数且 URL 末尾需加斜杠,否则解析失败或静默回退官方源。

composer config -g repo.packagist 命令必须带 -g 和完整 URL 末尾斜杠
不加 -g 就是项目级配置,不会影响其他项目;URL 缺少末尾斜杠(如写成 https://mirrors.aliyun.com/composer)会导致 Composer 解析失败,后续所有命令报 Could not fetch 或静默 fallback 到官方源。正确写法只有一种:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。这条命令会直接改写 ~/.composer/config.json,且只接受单数键名 repo.packagist,写成 repos.packagist 或 repositories.packagist 都无效。
验证镜像是否生效不能靠 composer diagnose 或 composer global show
这两个命令根本不读取 repo.packagist 配置项,输出里压根不体现当前用的是哪个源。唯一可靠方式是运行:composer config -g repo.packagist。如果返回空或 {"type": "composer", "url": "https://packagist.org"},说明没生效。别信 composer install 走得快就以为成功了——可能只是缓存命中的假象,清掉缓存再试一次才能确认。
Vagrant 或 Docker 中的镜像配置不能靠文件同步
宿主机配好的 ~/.composer/config.json 拷进虚拟机、或用 synced_folder 映射过去,大概率导致 Cannot create cache directory 错误。根本原因是 Composer 的缓存路径仍指向宿主机用户目录,而 vboxsf 不支持 symlink,PHP 进程也无权在共享路径创建缓存子目录。正确做法是:登录虚机后单独执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,并手动把缓存目录迁到本地磁盘,例如:composer config -g cache-dir /home/vagrant/.composer-cache。
项目级配置优先级高于全局,但删了配置就退回去
在项目根目录运行 composer config repo.packagist composer https://mirrors.tencent.com/composer/,会把配置写入当前 composer.json 的 repositories 字段。这个配置只对本项目生效,适合团队统一源或临时切腾讯云加速。但要注意:一旦你手动删掉 composer.json 里的 repositories 段,Composer 就立刻回退到全局配置;如果全局也没设,就直连官方源。所以别删配置前不确认全局状态。


















