答案是未将Composer全局bin目录添加到PATH环境变量;需运行composer global config bin-dir --absolute获取真实路径,再将其加入shell或系统PATH并重载配置验证。

composer global require 后命令还是 not found?先查 bin-dir 真实路径
不是包没装上,也不是网络问题,90% 是因为 PATH 没加对目录。新版 Composer(2.4+)默认把全局可执行文件放在 ~/.config/composer/vendor/bin(Linux/macOS)或 %APPDATA%\Composer\vendor\bin(Windows),但这个路径可能被你自定义过,不能硬猜。
唯一可靠方式是运行:
composer global config bin-dir --absolute
它输出的才是真实路径,比如:
- Linux/macOS:
/home/alice/.config/composer/vendor/bin - Windows:
C:\Users\Alice\AppData\Roaming\Composer\vendor\bin
把这个结果复制下来,下一步直接用——别抄旧教程里的 ~/.composer/vendor/bin,那个目录在新版里很可能为空。
Linux/macOS:shell 配置写错文件 or 忘 reload?zsh 和 bash 不互通
macOS Catalina 及以后默认用 zsh,不是 bash;改了 ~/.bash_profile 却在 zsh 终端里测试,当然不生效。
确认当前 shell:
echo $SHELL
然后编辑对应配置文件末尾,加这一行(推荐用命令动态获取路径,比硬编码更稳):
export PATH="$(composer global config bin-dir --absolute):$PATH"
改完必须重载,否则当前终端完全看不到变化:
- zsh:运行
source ~/.zshrc - bash:运行
source ~/.bash_profile - 或者直接新开一个终端
验证是否生效:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
echo $PATH | grep -o "/.*composer.*bin"
再试 which laravel 或 which phpunit,看是否指向你刚加的路径。
Windows:用户变量 vs 系统变量、PowerShell 执行策略、Git Bash 路径翻译
加到「用户变量」里的 Path 就够了,不用碰系统变量;但必须确保新加的路径是完整、无空格、无尾部反斜杠的绝对路径,例如:
- 正确:
%APPDATA%\Composer\vendor\bin - 错误:
%APPDATA%\Composer\vendor\bin\(末尾空格) - 错误:
~/AppData/Roaming/Composer/vendor/bin(波浪号在 Windows 不被识别)
加完后必须重启所有终端(CMD、PowerShell、VS Code 全部关掉再开),因为 VS Code 不继承新环境变量。
如果 PowerShell 报错类似:
File C:\Users\Alice\AppData\Roaming\Composer\vendor\bin\laravel.ps1 cannot be loaded because running scripts is disabled
说明执行策略阻止了脚本运行,临时放行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Git Bash 会把 Windows 路径自动转成 /c/Users/... 格式,但 .bat 文件不认这个。要么改用 CMD,要么在 Git Bash 里手动加路径(注意正斜杠和变量):
export PATH="$APPDATA/Composer/vendor/bin:$PATH"
中文用户名或路径导致“系统找不到指定的路径”?这不是 Composer 的锅
Windows 下用户名是中文(如 “张三”),%USERPROFILE% 展开后路径含中文字符,很多工具链(包括 Composer 的 composer.bat 包装器、PHP CLI、甚至 Windows 自身的长路径限制)会在解析时出错,报错看起来像“找不到 composer”,实际是路径解码失败或 MAX_PATH 截断。
这不是 Composer 配置能绕过的,必须从系统层处理:
- 启用 Win32 长路径支持(组策略或注册表),否则深层
vendor目录创建直接失败 -
COMPOSER_HOME必须设为绝对路径,且不能含~、$HOME、%USERPROFILE%—— 这些变量在 Composer 启动时可能未展开,导致它往错误位置写文件 - 若已用中文用户名安装,建议新建英文用户名账户,迁移开发环境,比打补丁更可靠
最易被忽略的一点:即使所有配置都对,只要 COMPOSER_HOME 设错,composer global require 就会静默把可执行文件装进一个你根本想不到的目录,后续所有排查都白费。

















