composer全局目录COMPOSER_HOME默认为linux/macOS的~/.composer、windows的%USERPROFILE%appDataRoamingComposer,存放全局包、缓存、配置等;可通过环境变量、–home参数或重置config.json修改,但需手动重装全局包。

Composer 的全局目录(COMPOSER_HOME)默认是用户主目录下的 composer 文件夹,具体路径取决于操作系统:
各系统默认 COMPOSER_HOME 路径
Linux / macOS:~/.composer(即 $HOME/.composer)
Windows:%USERPROFILE%AppDataRoamingComposer(例如 C:Users用户名AppDataRoamingComposer)
这个目录存放全局安装的包、缓存、配置文件(config.json)、证书和插件等。
查看当前 COMPOSER_HOME 值
运行以下命令可确认 Composer 当前使用的路径:
composer config --global --list | grep home
或更直接地:
echo $COMPOSER_HOME(Linux/macos)echo %COMPOSER_HOME%(Windows CMD)
修改 COMPOSER_HOME(自定义全局目录)
有三种常用方式,优先级从高到低:
- 方式一:设置环境变量(推荐)
在系统环境变量中设置COMPOSER_HOME,覆盖默认路径。
Linux/macOS(写入~/.bashrc或~/.zshrc):export COMPOSER_HOME="$HOME/.my-composer"
Windows(系统属性 → 高级 → 环境变量 → 新建用户变量):
变量名:COMPOSER_HOME,变量值:C:my-composer - 方式二:使用 –home 参数临时指定
每次运行命令时加--home,仅对当次生效:composer --home=/path/to/my-composer global require laravel/installer - 方式三:改写全局 config.json 路径(不推荐)
Composer 不支持直接迁移配置文件路径,但可通过先设环境变量再运行composer config --global来初始化新位置的配置。
注意事项
修改后首次运行 composer 命令会自动在新路径下创建 vendor/、cache/ 和 config.json 等结构。
已全局安装的包不会自动迁移,需手动重新执行 composer global require xxx。
如果用的是旧版 Composer(composer self-update)。
基本上就这些。改环境变量是最干净、最通用的做法,改完别忘了重启终端或重载 shell 配置。