composer 报 command not found 的根本原因是 path 未正确配置:需分别将 composer 自身路径和全局 bin 路径加入系统或 shell 环境变量,并确保 vs code 终端使用匹配的 shell,修改后必须全新启动终端验证。

VS Code 终端里 composer 报 command not found,不是插件没装、不是 Composer 没装,而是终端压根没在 PATH 里找到它——必须从系统环境变量和 shell 启动方式两个层面同时确认。
where composer 返回空,说明 PATH 没加对
这是最直接的判断依据。Windows 上运行 where composer,macOS/Linux 上运行 which composer,如果无任何输出,就证明路径没生效。
- Windows 用户:确认
C:\ProgramData\ComposerSetup\bin(官方安装器默认路径)已添加到「系统变量」→Path,不是「用户变量」;末尾不能有空格或反斜杠 - macOS/Linux 用户:运行
composer global config bin-dir --absolute获取真实全局 bin 路径(新版默认是~/.config/composer/vendor/bin),然后把它加进~/.zshrc或~/.bashrc的PATH里 - 改完必须关闭所有已打开的终端(包括 VS Code),再全新启动——旧进程不会重读环境变量
VS Code 终端右下角显示的是 PowerShell,但你配的是 zsh
VS Code 默认终端 shell 和你配置 PATH 的 shell 往往不一致。比如你在 ~/.zshrc 里加了路径,但 VS Code 启动的是 PowerShell,那自然找不到 composer。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 点击终端右下角的 shell 名称(如
PowerShell),从弹出菜单切换为zsh(macOS)或Command Prompt(Windows) - 切完后别急着输命令,先运行
which composer或where composer验证是否识别 - macOS 下从 Dock 或 Finder 启动 VS Code,会读不到
~/.zshrc;请直接在终端中执行code .启动编辑器
全局命令(如 laravel)能装但不能用
composer global require laravel/installer 成功 ≠ laravel -V 能运行。全局命令文件实际放在另一个路径,和 composer 自身所在目录完全无关。
- 运行
composer global config bin-dir --absolute查出真实路径,例如C:\Users\Alice\AppData\Roaming\Composer\vendor\bin - 把这个路径单独加进「用户变量」→
Path(Windows)或写进~/.zshrc(macOS)并执行source ~/.zshrc - 检查该路径下是否存在
laravel.bat(Windows)或laravel(macOS/Linux);没有说明包没声明"bin"字段,或安装失败
Git Bash / WSL / Docker 环境下 PATH 不继承
Git Bash 不读 Windows 系统 PATH;WSL 默认不认 Windows 的 %APPDATA%;Docker 容器更是一张白纸——这些场景下,手动补 PATH 是唯一可靠方式。
- Git Bash:编辑
~/.bashrc,加一行export PATH="$APPDATA/Composer/vendor/bin:$PATH"(注意正斜杠,$APPDATA在 Git Bash 中可识别) - WSL:不要指望调用 Windows 下的
composer.bat;应在 WSL 内单独安装 Composer,或用php ~/.composer/vendor/bin/laravel这类绝对路径调用 - Docker:镜像里必须显式安装 Composer,或挂载宿主机二进制文件,并确保容器内
PATH包含该路径
最容易被忽略的一点:composer 命令本身和它安装的全局命令(如 laravel)分属两个不同路径,且需分别加入 PATH;很多人只加了一个,就以为万事大吉。










