composer global config bin-dir 直接返回全局可执行文件目录(如 ~/.composer/vendor/bin 或 C:\Users\YourName\AppData\Roaming\Composer\vendor\bin),该路径必须加入系统 PATH 才能调用 laravel 等全局命令。

composer global config home 查看全局配置目录
执行 composer global config home 是最直接的方式,它会输出 Composer 全局配置所在路径(如 ~/.composer 或 %APPDATA%\Composer),这个目录下有 vendor/bin,就是全局 bin 的实际落点。
注意:该命令不显示 bin 路径本身,只显示配置根目录;bin 是固定子路径,需手动拼接。
composer global config bin-dir 查看真实全局 bin 路径
更精准的做法是运行 composer global config bin-dir,它直接返回全局可执行文件的存放目录,比如:
~/.composer/vendor/bin
Windows 用户可能看到类似:
C:\Users\YourName\AppData\Roaming\Composer\vendor\bin
这个路径必须加入系统 PATH,否则终端无法直接调用全局安装的命令(如 laravel、phpunit)。
为什么 composer global install 后命令找不到
常见原因不是安装失败,而是 bin-dir 未加入环境变量。检查方式:
- 运行
echo $PATH(macOS/Linux)或echo %PATH%(Windows CMD)确认是否包含composer global config bin-dir输出的路径 - 如果刚加过 PATH,记得重启终端或重新加载 shell 配置(如
source ~/.zshrc) - 某些 IDE(如 PHPStorm)启动时不会继承更新后的 PATH,需重启 IDE 或配置其终端环境
全局 bin 目录和 vendor 目录的关系
全局 bin 不是独立目录,它由 Composer 自动创建并链接到 vendor/bin 下的可执行脚本。关键点:
-
composer global install laravel/installer会把laravel命令软链进bin-dir - 不要手动往
bin-dir放文件,否则 Composer 可能覆盖或忽略它们 - 升级 Composer 后,
bin-dir路径一般不变,但若重装或切换用户,需重新验证
真正容易被忽略的是:不同 Composer 版本对 Windows 路径处理略有差异,尤其在 WSL 和原生 CMD 混用时,bin-dir 返回的路径格式(斜杠方向、是否含盘符)会影响 PATH 生效。










