laravel命令失效本质是系统未识别Composer全局bin目录,需先用composer global list | grep laravel/installer确认安装,再查bin路径(如~/.config/composer/vendor/bin),将其加入PATH并source配置文件,最后验证laravel --version。

laravel 命令失效,本质是系统找不到这个可执行文件,不是 Laravel 项目出错,而是 Composer 全局 bin 目录没被 shell 正确识别。
确认是否真装了安装器
运行下面命令检查 laravel/installer 是否已全局安装:
- composer global list | grep laravel/installer —— 有输出说明已装;没输出就还没装
- ls -la ~/.composer/vendor/bin/laravel(macOS/Linux)或 dir %APPDATA%\Composer\vendor\bin\laravel.bat(Windows)—— 看文件是否存在
路径没进系统环境变量
即使装了,shell 也得知道去哪找 laravel。常见路径是 ~/.composer/vendor/bin(旧版)或 ~/.config/composer/vendor/bin(新版),需手动加进 PATH:
- 编辑 ~/.zshrc(M1/M2 Mac)或 ~/.bashrc(Linux/Intel Mac):添加一行 export PATH="$HOME/.composer/vendor/bin:$PATH"(路径按你实际的改)
- 运行 source ~/.zshrc(或对应配置文件)重载
- 再试 laravel --version,应能正常输出
Windows 上 .bat 找不到 php
Windows 的 laravel.bat 脚本依赖系统能找到 php.exe。如果报 “The system cannot find the path specified”,说明它调用不了 PHP:
- 查 php 实际位置:where php 或 php --ini 看 Loaded Configuration File 路径,反推 php.exe 所在目录
- 进 %APPDATA%\Composer\vendor\bin,打开 laravel.bat,确认第一行类似 @php "%~dp0/../laravel/installer/bin/laravel" —— 它靠系统 PATH 里的 php,所以确保 php.exe 目录已加入 Windows 环境变量 PATH
- 更稳妥的做法:不用 laravel new,直接用 composer create-project laravel/laravel myapp
权限或缓存干扰
装了但命令仍不可用,可能是权限锁死或 autoloader 没刷新:
- 重装一次:composer global require laravel/installer(别加 --dev)
- 清 autoload 缓存:composer global dump-autoload
- Linux/macOS 权限异常时:sudo chown -R $USER:$USER ~/.composer 和 chmod -R 755 ~/.composer/vendor/bin


















