composer_HOME 环境变量指定 Composer 全局配置目录路径,影响 config.json、缓存、全局包及插件存储位置;默认路径因系统而异,可临时或永久修改,修改后需确保读写权限并可能需迁移旧全局包。

COMPOSER_HOME 环境变量用于指定 Composer 的全局配置目录位置,它决定了 Composer 存放全局配置文件(config.json)、缓存(cache/)、全局安装的可执行包(vendor/bin/)以及插件数据的根路径。
默认行为和典型路径
如果不设置 COMPOSER_HOME,Composer 会按 操作系统 自动选择默认目录:
所有全局操作(如 composer global require、composer config --global)都基于该目录工作。修改它会影响全局配置生效位置和包安装位置,但不会影响项目级的 composer.json 和 vendor/ 目录。
临时修改(当前终端会话有效)
在运行 Composer 命令前,直接设置环境变量即可:
- Linux/macOS:
COMPOSER_HOME=/path/to/my-composer-home composer global require laravel/installer - Windows(CMD):
set COMPOSER_HOME=C:my-composer && composer global require laravel/installer - Windows(PowerShell):
$env:COMPOSER_HOME="C:my-composer"; composer global require laravel/installer
永久修改(推荐方式)
将环境变量写入 shell 配置文件或系统环境变量中,使每次打开终端都自动生效:
- Linux/macos:在
~/.bashrc、~/.zshrc或~/.profile中添加一行:export COMPOSER_HOME="$HOME/.my-composer"
然后执行source ~/.zshrc(或对应文件)刷新。 - Windows:通过「系统属性 → 高级 → 环境变量」添加用户或系统变量
COMPOSER_HOME,值设为例如C:UsersYourNamecomposer,重启终端生效。
验证是否生效
运行以下命令查看 Composer 实际使用的主目录:
-
composer config --list --global | grep home(显示全局配置中的 home 路径) -
echo $COMPOSER_HOME(Linux/macOS)或echo %COMPOSER_HOME%(Windows)确认环境变量值 -
composer global status会列出当前全局 vendor 目录,其父路径即为 COMPOSER_HOME 所指位置
注意:修改后需确保新目录有读写权限,且若之前在默认路径下安装过全局包,需手动迁移或重新安装。