会,但只清本地下载的包文件和元数据缓存,不改镜像源配置;清缓存后仍走当前配置的镜像(如阿里云),只是重新从该镜像拉取数据,而非读旧缓存。

composer clear-cache 会清掉镜像缓存吗?
会,但只清本地下载的包文件和元数据缓存,不改镜像源配置。也就是说,composer clear-cache 后你依然走的是当前配置的镜像(比如阿里云、腾讯云),只是它会重新从那个镜像拉取包,而不是读本地缓存。
怎么确认当前用了哪个镜像?
运行 composer config -g repo.packagist,如果输出类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"},说明全局启用了镜像;如果报错或返回空,说明用的是默认官方源。
- 全局配置在
~/.composer/config.json(Linux/macOS)或%APPDATA%\Composer\config.json(Windows) - 项目级配置优先于全局,检查项目根目录下的
composer.json里有没有repositories字段覆盖了 packagist - 临时禁用镜像可加
-d参数:比如composer install -d repo.packagist=,但不推荐长期这么用
如何彻底还原为默认官方源?
删掉镜像配置即可,不是“切换”,而是“移除”——Composer 没有内置的 “restore default” 命令,得手动清理。
- 删全局镜像:
composer config -g --unset repos.packagist - 删项目级镜像:
composer config --unset repos.packagist(在项目目录下运行) - 如果之前用过
composer config -g repo.packagist https://xxx这种直接赋值写法,就用--unset;如果用的是composer config -g repos.packagist.url https://xxx,那要 unsetrepos.packagist.url - 执行完后建议再跑一次
composer clear-cache,确保后续请求不带旧缓存干扰
为什么删了镜像还走国内加速?
常见原因是 DNS 或网络中间件劫持,比如公司代理、路由器 DNS 污染,或者系统 hosts 文件硬绑了 packagist.org 到国内 IP。这时候 composer config 看不到镜像,但实际请求被重定向了。
- 用
curl -v https://packagist.org/packages.json看真实响应头和 IP,确认是否真连到了官方服务器 - 检查
/etc/hosts(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts(Windows)有没有 packagist 相关条目 - 某些 IDE(如 PHPStorm)自带 Composer 配置缓存,重启 IDE 或清除其缓存可能有影响
composer config -g -l 和 composer config -l 都跑一遍,比猜快得多。


















