laravel命令找不到的根本原因是composer_home/vendor/bin未加入path环境变量;需确认composer_home路径正确、该目录下存在laravel可执行文件、将对应bin路径添加至path并重载shell配置或重启终端。

全局包命令(如 laravel、phpunit)找不到,不是 Composer 没装好,而是 COMPOSER_HOME/vendor/bin 没进 PATH —— 这是 90% 的 Windows/macOS/Linux 用户卡住的地方。
为什么 composer global require 装了却用不了命令?
Composer 只负责把可执行文件放进 COMPOSER_HOME/vendor/bin 目录,它不碰系统 PATH。你运行 composer global require laravel/installer 成功后,laravel 文件确实生成了,但 shell 根本不知道去哪找它。
- Windows 默认路径是
C:\Users\username\AppData\Roaming\Composer\vendor\bin(不是%APPDATA%\Composer\vendor\bin,Git Bash 不展开环境变量) - Linux/macOS 默认是
/home/username/.composer/vendor/bin(不能写成~/.composer/vendor/bin,~在环境变量里无效) - 必须确认该目录下真有对应文件:比如
laravel.bat(Win)或laravel(Linux/macOS),否则说明global require实际失败了 -
composer config --global bin-dir完全无关——它只改项目级vendor/bin,不影响全局命令存放位置
怎么验证 COMPOSER_HOME 是否设对?
设错 COMPOSER_HOME 是静默故障的根源:路径少个斜杠、用了 $HOME、Windows 写了 %USERPROFILE%,都会导致全局配置、缓存、vendor/bin 全部错位。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer config --list --global,看顶部 “Global configuration file” 路径是否与你预期一致 - 如果显示
/home/username/.composer/config.json,但你想用/opt/composer-global,说明环境变量没生效或写错了 - Linux/macOS:检查
~/.zshrc或~/.bashrc里是否用了export COMPOSER_HOME="/opt/composer-global"(绝对路径,无~) - Windows:在「系统属性 → 环境变量」里查「用户变量」或「系统变量」中是否存在
COMPOSER_HOME,值必须是完整盘符路径,如C:\tools\composer
PATH 加对了,为什么新终端还是找不到命令?
环境变量修改后,旧终端进程不会自动重载,这是最常被跳过的一步。
- Windows:关闭所有 CMD/PowerShell/Git Bash/VS Code 终端窗口,再全新打开一个;运行
echo %PATH%搜索你加的路径段 - Linux/macOS:改完
~/.zshrc后必须运行source ~/.zshrc,否则只对新登录会话生效 - VS Code 内置终端尤其容易坑人:它继承的是启动时的环境,不是当前 shell 配置,关掉整个 VS Code 再开才保险
- 验证命令是否真能跨目录调用:别只在 home 目录试,进
~/Projects/test再跑laravel -V
Windows 下 laravel 命令报错或卡住怎么办?
直接双击或运行 php composer.phar 在 Windows 上极不稳定,真正可靠的入口是 composer.bat 包装器。
- 官方安装包自带的
composer.bat会自动探测 PHP 并设置PHP_IDE_CONFIG等变量;手动下载composer.phar的话,务必在同一目录建一个composer.bat:
@echo off php "%~dp0composer.phar" %*
.bat 所在目录进了 PATH,而不是只加了 composer.phar 的路径where php 查出所有路径,把你要用的那个(如 C:\php82)移到 PATH 最前面,或直接在 .bat 里硬编码:C:\php82\php.exe "%~dp0composer.phar" %*
laravel 命令报 ext-zip not loaded,不是 Composer 问题,是 PHP CLI 的 php.ini 没启用 extension=zip
真正麻烦的从来不是“怎么装”,而是“哪个路径该进哪个变量”——COMPOSER_HOME 决定文件放哪,PATH 决定 shell 去哪找,两者必须严格匹配且重启终端才能生效。漏掉任意一环,global require 就等于白装。










