Composer 默认不固定安装路径,其全局位置由 composer.phar 文件存放路径及 PATH 环境变量共同决定;可通过 which composer(Linux/macOS)或 where composer(Windows)查询实际位置。

Composer 默认装在哪?先确认当前路径
Composer 的全局安装位置取决于系统和安装方式,不是固定在 C 盘或 Home 目录。它本质是把 composer.phar 文件放在某个可执行路径里,并配好环境变量。你看到的“装在 C 盘”其实是 Windows 下默认终端(如 CMD/PowerShell)的当前工作目录或用户主目录被误认为安装位置。
-
which composer(Linux/macOS)或where composer(Windows)能查到实际可执行文件位置 - 如果返回空,说明没加进
PATH,那可能只是下载了composer.phar但没设为全局命令 - 常见假象:你在
C:\Users\Alice下运行了安装脚本,就以为“装在 C 盘”,其实只是下载到了那个目录
想换盘安装?本质是改 composer.phar 存放位置 + 更新 PATH
Composer 没有“安装到 D 盘”的原生选项,所谓“移动位置”,就是手动把 composer.phar 文件挪到目标磁盘的某个目录(比如 D:\tools\composer.phar),再让系统知道这个路径。
- 下载最新
composer.phar到目标位置:php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php --filename=composer.phar --install-dir=D:\tools - 确保该目录已加入系统
PATH(Windows:系统属性 → 环境变量;macOS/Linux:修改~/.bashrc或~/.zshrc,加export PATH="D:/tools:$PATH") - 重启终端,运行
composer --version验证是否生效 - 别用双引号包裹路径(如
"D:\tools"),某些 shell 会报错;Windows 上推荐用正斜杠D:/tools或裸路径
用 COMPOSER_HOME 控制配置和缓存目录(这才是真·磁盘迁移)
很多人想“换盘”其实是想把 vendor、cache、global packages 这些占空间的目录挪走。COMPOSER_HOME 环境变量管的就是这个,它决定 Composer 自己的配置、全局包、缓存存在哪,和 composer.phar 本体位置无关。
- 设置
COMPOSER_HOME=D:\composer-home(Windows)或export COMPOSER_HOME="/d/composer-home"(WSL) - 设置后,
composer global require装的包、composer cache数据、auth.json都会落到这个目录 - 注意:旧缓存不会自动迁移,要手动复制
%APPDATA%\Composer\cache(Windows)或~/.composer/cache(macOS/Linux)里的内容过去 - 验证:运行
composer config --global home,输出应为你的新路径
常见错误:为什么换了路径还是报错或不生效?
最常卡在环境变量没生效、权限问题、或混淆了“命令位置”和“数据位置”。尤其 Windows 用户容易忽略这几点:
- 改完
PATH或COMPOSER_HOME后没重启终端(CMD/PowerShell/IDE 内置终端都得关重开) - 用 Git Bash 时,它不读 Windows 系统环境变量,得在
~/.bashrc里显式export COMPOSER_HOME="/d/composer-home" - 杀毒软件拦截
composer.phar执行(尤其是从非官网下载的旧版本),报PHP Parse error或直接静默失败 -
composer self-update会更新composer.phar本身,但不会动COMPOSER_HOME下的内容——所以更新后仍走你设的缓存路径,这点很稳
composer.phar 文件放哪(靠 PATH),另一个是它的家(COMPOSER_HOME)。搞混这两者,所有操作都会绕弯。










