根本原因是PATH未包含Composer全局bin目录,需手动将$HOME/.composer/vendor/bin(Linux/macOS)或%APPDATA%\Composer\vendor\bin(Windows)加入系统PATH并重载配置,否则shell无法定位可执行文件。
能直接用装,但装完命令一定调不了——除非你手动把目录加进系统。
为什么
成功了却找不到
命令
因为 Composer 只把可执行文件软链接到全局
目录,而这个目录默认不在系统
里。Shell 根本不知道去哪找它。
Linux/macOS 实际路径是
(或
)
Windows 实际路径是
(不是
)
运行
查当前
;再用
直接看完整
路径
别信
显示“已安装”就以为能用了——它只说明包进了
,不保证命令可调用
怎么让
、
这类命令真正生效
必须把
所在路径加入
,且重载配置。这步漏掉,100% 报
。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
Linux/macOS:往
(zsh 用户)或
(bash 用户)末尾加:
然后运行
Windows:打开「系统属性 → 高级 → 环境变量」→ 在「用户变量」的
里新增一行:
验证是否生效:
Linux/macOS 运行
;Windows 运行
再直接试
或
不是独立命令,
参数会被忽略
单独敲会报错,它只是个命名空间前缀,后面必须跟
、
、
等子命令。
正确写法只有:
中的
完全无效——全局安装没有 dev/stable 区分
升级全部全局包,用
;不要手动删
,否则所有命令立刻失效
卸载某个包?没有
,只能
(Composer 2.5+ 支持)
最容易被跳过的其实是
更新后没重载 shell 配置,或者 Windows 用户改了环境变量却没开新终端。哪怕路径写对了,旧窗口里的
也不会自动刷新。
composer global requirevendor/binPATHcomposer global require laravel/installerlaravelvendor/bin/PATH$HOME/.composer/vendor/bin$COMPOSER_HOME/vendor/bin%APPDATA%\Composer\vendor\bin%APPDATA%\Composer\bincomposer config --global homeCOMPOSER_HOMEcomposer global config bin-dir --absolutebincomposer global listvendorlaravelphpunitvendor/binPATHcommand not found~/.zshrc~/.bash_profileexport PATH="$HOME/.composer/vendor/bin:$PATH"source ~/.zshrcPath%APPDATA%\Composer\vendor\binecho $PATH | grep composerecho %PATH%laravel --versionphpunit --versioncomposer global--devcomposer globalrequirelistupdatecomposer global require vendor/package-namecomposer global require --dev phpunit/phpunit--devcomposer global update~/.composer/vendoruninstallcomposer global remove vendor/package-namePATHPATH