正确命令是 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,漏 -g、错键名(如 repos.packagist)、缺 type 值、url 末尾无 / 均导致静默失败;验证需输出完整 json;宝塔/ci 应改用项目级配置;卡在 “resolving dependencies” 与镜像无关,需收紧版本约束或清理 dev 包。

composer config -g repo.packagist 命令为什么总不生效
不是网络慢,是命令写错就静默失败——漏掉 -g、多写一个 s(repos.packagist)、省略 composer 类型值、URL 少末尾斜杠,任一错误都会让配置完全不落地。
正确写法只有一条:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
-
repo.packagist是固定键名,不能是repos.packagist或packagist.org -
composer是 type 字段值,不是可选参数,必须显式写出 - URL 必须用 HTTPS,且结尾必须带
/(https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌) - 验证是否生效:运行
composer config -g repo.packagist,输出必须是完整 JSON,如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};返回空、null或仍是https://packagist.org,说明没写对
宝塔或 CI 环境里镜像为啥还是走官方源
因为 composer config -g 写的是当前登录用户的配置,而宝塔后台、计划任务、GitLab Runner 默认以 www 或 runner 用户运行,压根读不到你的 ~/.composer/config.json。
更可靠的做法是项目级配置,进项目根目录执行:composer config repo.packagist composer https://mirrors.aliyun.com/composer/(去掉 -g)。
- 该命令会自动在
composer.json顶层添加"repositories"字段,key 固定为"packagist" - 如果项目已有
"repositories",命令会安全追加,不会覆盖私有源 - Git 提交后,所有协作者和 CI 环境行为一致,无需额外权限或用户适配
- 若项目已设
"packagist.org": false,全局镜像会被直接屏蔽,项目级配置可绕过此限制
换源后 still stuck at “Resolving dependencies” 怎么办
镜像只加速下载(Fetching package、Downloading),不解决依赖解析慢的问题。卡在这里,和镜像源完全无关。
典型诱因是 composer.json 里约束太松,导致求解器穷举爆炸:
-
"php": "^7.4 || ^8.0"这类宽泛版本声明会让 Composer 尝试大量 PHP+包组合 -
"monolog/monolog": "*"或"dev-main"这类未锁定版本会触发全量元数据扫描 -
require-dev里塞了phpstan、infection等重型工具链 - 老项目残留
fxp/composer-asset-plugin,它绕过镜像直连 Bower/NPM 源(国内不可达)
先运行 composer install -vvv 看卡点,如果是 Resolving dependencies 阶段超 10 秒,就该收紧约束、删 dev 包、禁用 xdebug,而不是再换镜像。
腾讯云/中科大/清华镜像怎么选
阿里云、腾讯云、中科大、清华四家镜像均已全量同步,延迟均在分钟级,选哪个主要看网络实际可达性。
南方用户偶尔遇到 mirrors.cloud.tencent.com DNS 解析不稳定,可临时切阿里云;北方用户若发现清华源响应慢,换中科大通常更稳。
- 阿里云:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 腾讯云:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 中科大:
composer config -g repo.packagist composer https://mirrors.ustc.edu.cn/composer/ - 清华:
composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/
别用已下线的 https://packagist.phpcomposer.com,也别信某些教程让你改 php.ini 或开系统代理——镜像配置纯客户端行为,不需要任何 PHP 扩展或网络层干预。











