根本原因是path未包含composer全局bin目录,需手动将$home/.composer/vendor/bin(linux/macos)或%appdata%\composer\vendor\bin(windows)加入系统path并重载配置,否则shell无法定位可执行文件。

能直接用 composer global require 装,但装完命令一定调不了——除非你手动把 vendor/bin 目录加进系统 PATH。
为什么 composer global require laravel/installer 成功了却找不到 laravel 命令
因为 Composer 只把可执行文件软链接到全局 vendor/bin/ 目录,而这个目录默认不在系统 PATH 里。Shell 根本不知道去哪找它。
- Linux/macOS 实际路径是
$HOME/.composer/vendor/bin(或$COMPOSER_HOME/vendor/bin) - Windows 实际路径是
%APPDATA%\Composer\vendor\bin(不是%APPDATA%\Composer\bin) - 运行
composer config --global home查当前COMPOSER_HOME;再用composer global config bin-dir --absolute直接看完整bin路径 - 别信
composer global list显示“已安装”就以为能用了——它只说明包进了vendor,不保证命令可调用
怎么让 laravel、phpunit 这类命令真正生效
必须把 vendor/bin 所在路径加入 PATH,且重载配置。这步漏掉,100% 报 command not found。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Linux/macOS:往
~/.zshrc(zsh 用户)或~/.bash_profile(bash 用户)末尾加:export PATH="$HOME/.composer/vendor/bin:$PATH"
然后运行source ~/.zshrc - Windows:打开「系统属性 → 高级 → 环境变量」→ 在「用户变量」的
Path里新增一行:%APPDATA%\Composer\vendor\bin - 验证是否生效:
Linux/macOS 运行echo $PATH | grep composer;Windows 运行echo %PATH%
再直接试laravel --version或phpunit --version
composer global 不是独立命令,--dev 参数会被忽略
composer global 单独敲会报错,它只是个命名空间前缀,后面必须跟 require、list、update 等子命令。
- 正确写法只有:
composer global require vendor/package-name -
composer global require --dev phpunit/phpunit中的--dev完全无效——全局安装没有 dev/stable 区分 - 升级全部全局包,用
composer global update;不要手动删~/.composer/vendor,否则所有命令立刻失效 - 卸载某个包?没有
uninstall,只能composer global remove vendor/package-name(Composer 2.5+ 支持)
最容易被跳过的其实是 PATH 更新后没重载 shell 配置,或者 Windows 用户改了环境变量却没开新终端。哪怕路径写对了,旧窗口里的 PATH 也不会自动刷新。










