根本原因是Composer可执行文件路径未加入系统PATH环境变量。需先验证安装是否成功:Composer-Setup.exe可能因杀软或权限问题未自动配置PATH;手动下载的composer.phar需用php命令调用。应将composer.bat所在目录(如C:\ProgramData\ComposerSetup\bin\)添加至系统PATH,重启终端后运行composer --version验证;WSL/Git Bash需单独配置对应环境变量。

直接原因是 composer 的可执行文件路径没加进系统 PATH 环境变量,Windows 找不到这个命令。
确认 Composer 是否真的安装成功
别急着改环境变量,先验证安装动作本身有没有问题:
- 如果你用的是
Composer-Setup.exe安装器,它默认会尝试自动配置PATH,但有时会失败(尤其杀毒软件拦截或权限不足) - 如果你是手动下载
composer.phar,那它只是个 PHP 脚本文件,必须配合php命令使用,比如php composer.phar install,此时根本不需要PATH配置 —— 但你也无法直接敲composer - 检查是否已生成
composer.bat或composer(无后缀)文件:常见位置是C:\ProgramData\ComposerSetup\bin\或你自定义的安装目录
把 composer.bat 所在目录加进 PATH(Windows)
这是最常见也最有效的解法。假设你找到 composer.bat 在 C:\ProgramData\ComposerSetup\bin\:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」里找到
Path,点「编辑」→「新建」→ 粘贴完整路径(注意不要带末尾反斜杠):C:\ProgramData\ComposerSetup\bin - 点「确定」保存所有窗口,然后关闭并重新打开命令提示符(cmd)或 PowerShell——旧窗口不会自动加载新 PATH
再运行 composer --version,应该就能看到输出了。
如果用的是 WSL 或 Git Bash,PATH 配置方式不同
Windows 原生 cmd 的 PATH 和 WSL/Git Bash 是两套体系,互不影响:
- WSL(如 Ubuntu):把
composer可执行文件(通常是/usr/local/bin/composer)所在目录加入~/.bashrc或~/.zshrc中的PATH,例如追加一行:export PATH="$PATH:/usr/local/bin",然后运行source ~/.bashrc - Git Bash:它模拟的是 MinGW 环境,不认 Windows 的
PATH,需手动把composer.bat所在目录加到~/.bash_profile,或者更简单——直接在 Git Bash 里用alias composer='winpty php /c/path/to/composer.phar' - 注意:Git Bash 默认不支持直接运行
.bat文件,所以不能指望它识别 Windows 下的composer.bat
验证 PATH 是否生效及常见坑
别只信“我点保存了”,要亲手验证:
- 在 cmd 中运行
echo %PATH%,看输出里有没有你刚加的路径(注意大小写不敏感,但路径必须完全匹配) - 运行
where composer,它会列出所有命中的composer可执行文件;如果没输出,说明 PATH 没生效或路径填错了 - 常见坑:
composer.bat被杀软删了、安装时选了“仅当前用户”但你在管理员 cmd 下测试、路径末尾多加了\导致识别失败、改完没重启终端
PATH 这种机制本身很简单,但 Windows 下路径权限、用户作用域、终端缓存三者叠加,最容易卡在“明明改了却没用”这一步。










