Composer 全局配置需逐项设置,不可一次性批量配置;正确换源须用 repositories.packagist.org 路径,认证凭据存 auth.json,路径须用绝对路径,误配可用 --unset 删除或手动清理文件。

Composer 的全局配置不能靠 composer config --global 一次性“设置全部”,它本质是逐项写入 ~/.composer/config.json(或 Windows 下 %APPDATA%\Composer\config.json),不存在“命令大全”这种批量设置入口。所有操作都围绕 composer config 展开,关键在理解 --global 的作用域和每个键的语义。
如何正确设置全局仓库源(mirror)
国内用户最常做的是换源,但直接写 packagist.org 的镜像地址必须用 repositories.packagist.org 这个精确路径,不是简单改 repositories 数组:
composer config --global repositories.packagist.org '{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}'
错误做法包括:composer config --global repositories.0.url ...(会破坏默认 packagist 行为)、composer config --global repo.packagist ...(键名无效)。该配置生效后,所有项目都会跳过官方 packagist.org,除非项目级配置显式覆盖。
设置全局认证凭据(auth.json 内容)
私有包仓库(如 GitLab、GitHub Packages、私有 Satis)需要 token 或用户名密码,这些不走 config.json,而是写入 auth.json —— 但 composer config --global 仍可操作:
-
composer config --global http-basic.repo.example.com username password→ 生成 Basic Auth 条目 -
composer config --global github-oauth.github.com 0123456789abcdef...→ 设置 GitHub Token -
composer config --global gitlab-token.gitlab.example.com abcdef123...→ GitLab 私有实例 Token
执行后,凭据自动存进 ~/.composer/auth.json,文件权限会被设为 600。注意:token 类型必须匹配仓库要求,GitHub 必须用 github-oauth,不能用 http-basic 模拟。
修改全局安装路径与缓存位置
两个常用路径可通过 config 直接设,但需注意变量展开限制:
-
composer config --global home "/path/to/my-composer-home"→ 改变~/.composer根目录(影响config.json、auth.json、cache/等位置) -
composer config --global cache-dir "/path/to/cache"→ 单独改缓存目录(不影响其他文件)
路径中不能使用 ~ 或环境变量(如 $HOME),必须写绝对路径。改 home 后,原 ~/.composer 下的配置不会自动迁移,需手动复制。
删错配置项或重置全局 config
没有“一键清空全局配置”的命令,误操作后只能手动删或用 --unset:
-
composer config --global --unset repositories.packagist.org→ 删除镜像设置 -
composer config --global --unset github-oauth.github.com→ 清 GitHub Token - 想彻底重来?直接删掉
~/.composer/config.json和~/.composer/auth.json(如有),再运行composer install会重建默认config.json
特别注意:composer config --global 不接受 JSON 文件导入,也不支持从 stdin 读取配置;所谓“命令大全”其实是把每个键当独立开关来 toggle,而不是批量初始化。










