唯一可靠方式是运行composer global config bin-dir --absolute获取真实路径,新版composer(2.4+)默认路径已迁移且可能被自定义,该路径需手动加入path才能调用laravel等全局命令。

composer global config bin-dir --absolute 是唯一可靠查询方式
别猜 ~/.composer/vendor/bin 或 %APPDATA%\Composer\vendor\bin,新版 Composer(2.4+)默认路径已迁移,且可能被自定义过。运行这条命令才能拿到当前生效的真实路径:
composer global config bin-dir --absolute
输出示例:
- Linux/macOS:
/home/alex/.config/composer/vendor/bin - Windows:
C:\Users\Alex\AppData\Roaming\Composer\vendor\bin
这个路径就是 laravel、phpunit、php-cs-fixer 这些命令实际存放的位置——不是 which composer 返回的路径,两者完全无关。
为什么 which laravel 找不到,但 composer global require 明明成功了
根本原因不是安装失败,而是 shell 没把 bin 目录加进 $PATH 或 Windows 的 Path 环境变量。常见表现:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- macOS/Linux:执行
echo $PATH,输出里没有composer global config bin-dir --absolute的结果 - Windows CMD:执行
echo %PATH%,没看到%APPDATA%\Composer\vendor\bin - PowerShell 报错
File ...laravel.ps1 cannot be loaded because running scripts is disabled(需临时放行执行策略)
注意:改完环境变量后,必须新开终端或运行 source ~/.zshrc(zsh)/source ~/.bash_profile(bash),旧窗口不会重载。
中文用户名导致 command not found 的真实原因和解法
Windows 下若用户名含中文(如 C:\Users\张三\AppData\Roaming\Composer\vendor\bin),部分终端或 IDE 无法解析该路径,表现为 where laravel 无输出。
- 最稳妥方案:新建英文用户名账户(系统级解决)
- 次选方案:用环境变量替代硬编码路径,例如写成
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin(CMD/Git Bash/PowerShell 均支持) - macOS/Linux:shell 配置中拼接路径时务必加双引号,如
export PATH="$HOME/.composer/vendor/bin:$PATH",否则空格或中文会截断
IDE(如 PHPStorm)里命令仍不可用?别只改终端 PATH
PHPStorm 启动时不自动继承你终端里的 $PATH,即使 which laravel 在终端里能返回结果,IDE 内部 CLI 仍可能找不到。
- 进入 Settings → PHP → CLI Interpreter,手动指定完整路径(如
/home/alex/.config/composer/vendor/bin/laravel) - 或在 Settings → Tools → Terminal 中启用 Shell environment,让终端继承当前 shell 环境
- 重启 IDE —— 改完配置不重启,基本等于没改
真正容易被忽略的是:全局包的可执行文件只是符号链接或包装脚本,它们能否跑起来,还取决于 PHP 版本、扩展是否就位。路径对了,laravel new 却报 Class not found,先查 php -v 和 php -m | grep mbstring,再回头翻路径。










