Composer报“不是内部或外部命令”是因为Windows未将Composer路径加入系统PATH环境变量,需在“系统变量”中添加C:\ProgramData\ComposerSetup\bin并重启终端;同时PHP路径也须加入PATH且php.exe必须可执行。

cmd里输入 composer 报“不是内部或外部命令”
这是 Windows 系统没把 Composer 的安装路径加进 PATH 环境变量。不是 Composer 没装好,而是系统压根找不到它。
常见错误现象:'composer' is not recognized as an internal or external command;哪怕你双击 Composer-Setup.exe 成功安装了,cmd 里照样不认。
- Composer 官方安装器默认会把可执行文件放在
C:\ProgramData\ComposerSetup\bin(注意是ProgramData,不是Program Files,且该目录默认隐藏) - 如果你用的是手动安装(比如下载
composer.phar+ 配php),那路径就是你存composer.phar的地方,比如D:\tools\composer.phar,这时你还得额外配个composer.bat文件才能当命令用 - 检查方法:打开文件资源管理器,地址栏直接粘贴
%PROGRAMDATA%\ComposerSetup\bin,看能不能进去;进得去就复制这个路径,准备加到PATH
怎么把 Composer 加进系统 PATH
加对位置才能全局生效。加错地方(比如只加给当前用户、或加在用户变量里但没重启 cmd)会导致部分终端能用、部分不能用。
- 右键“此电脑” → “属性” → “高级系统设置” → “环境变量”
- 在“系统变量”区域找到
Path,点“编辑” → “新建” → 粘贴刚才确认的路径(例如C:\ProgramData\ComposerSetup\bin) - 务必关掉所有已打开的 cmd 或 PowerShell 窗口,重新开一个再试
composer --version - 如果用的是 VS Code 内置终端,也得完全退出 VS Code 再重开,否则它缓存的是旧的环境变量
composer 能运行但报 php 找不到
Composer 是 PHP 脚本,必须依赖本地 php.exe。PATH 里只有 Composer 不够,PHP 也得在 PATH 里,且版本得 ≥ 7.2.5(当前最低要求)。
- 运行
php --version看是否识别;不识别就说明 PHP 没配 PATH,或者配了但路径错了(比如指向了php-win.exe而非php.exe) - PHP 安装路径常见位置:
C:\php、C:\xampp\php、C:\laragon\bin\php\php-8.2.0—— 找到含php.exe的那个目录,加进 PATH - 别用带空格的路径(比如
C:\Program Files\php),Windows 对这种路径解析容易出问题;建议移到C:\php这类干净路径下 - 验证顺序:先确保
php --version成功,再试composer --version
为什么 WSL 或 Git Bash 里 composer 也不生效
那是另一个 shell 环境,和 Windows cmd 的 PATH 是隔离的。你在系统变量里加了,只影响 cmd/PowerShell,不影响 WSL 或 Git Bash。
- WSL:编辑
~/.bashrc或~/.zshrc,加一行export PATH="$PATH:/mnt/c/ProgramData/ComposerSetup/bin"(注意路径要转成 WSL 格式) - Git Bash:编辑
~/.bash_profile,加同样逻辑的export PATH行,路径用/c/ProgramData/ComposerSetup/bin - 别指望 Windows 的 PATH 自动透传过去 —— WSL 和 Git Bash 都是独立进程,启动时只读一次环境变量,不会动态同步
composer,再让它能找到 php.exe。中间任何一环断掉,命令就卡在“不是内部或外部命令”。最容易被忽略的是:改完 PATH 后没关掉所有终端,或者在错误的 shell 环境里测试。










