composer global require 是唯一有效的全局安装命令,它将包安装到全局 vendor 目录(如 ~/.composer/vendor),但必须手动将 vendor/bin 路径加入系统 PATH 才能调用命令,否则必报 command not found。
composer
global require 是唯一能用的全局安装命令
没有
这个独立命令,单独敲它会报错。真正起作用的是
,比如
。它把包装进 Composer 的全局
目录(默认是
或
),但仅此而已——命令还不能直接调用。
参数会被忽略:全局安装不区分
和
,加了也白加
别用
:会导致
所有权变成 root,后续所有全局操作都会因权限失败;正确做法是
安装成功 ≠ 命令可用:你看到
这类输出,只代表包进了
,不代表
命令就能敲出来
vendor/bin 必须手动加进 PATH,否则 command not found 是必然结果
Composer 把包里声明的可执行文件(比如
、
)软链接到全局
目录下,但这个路径默认不在系统
里。Shell 根本找不到它,这是 90% “明明装了却用不了” 的根源。
Linux/macOS 路径是
(或
,如果改过
)
Windows 路径是
(注意不是
,后者不存在)
macOS 用户若用 zsh,要改
;bash 用户改
;改完必须
或重启终端
验证是否生效:运行
(Linux/macOS)或
(Windows),确认路径已存在;再试
,有输出才算通
怎么查全局 bin 目录真实路径?别猜,用命令问 Composer
别靠记忆或文档硬背路径,尤其当你改过
。Composer 自己就知道它把命令放哪儿了。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
运行
得到全局根目录,再拼上
就是完整路径
更直接:运行
,它会直接输出类似
的绝对路径
想确认某个工具是否真被链接进来:Linux/macOS 下
,能看到软链接指向;Windows 下用
如果改错
,用
可恢复默认
composer global update 很危险,别当日常操作用
它会强行拉取所有全局包的最新兼容版本,但不同工具依赖的
、
版本可能互相冲突。报错时往往只显示“Your requirements could not be resolved”,连哪个包在捣鬼都看不到。
升级单个包更安全:比如
,明确指定版本范围
卸载不是
:那会删掉所有全局工具;正确方式是
IDE 或脚本可能硬编码旧路径:如果你改过
,旧工具(比如
)可能突然找不到,得手动重装或修复配置
最常被跳过的一步,是把
加进
;最容易被低估的风险,是盲目跑
。这两件事没做对,其他所有操作都只是徒劳。
composer globalcomposer global require vendor/package-namecomposer global require laravel/installervendor~/.composer/vendor%APPDATA%\Composer\vendor--devrequirerequire-devsudo composer global require~/.composerchown -R $USER ~/.composerUsing version ^4.4 for laravel/installervendorlaravellaravelphp-cs-fixervendor/bin/PATH$HOME/.composer/vendor/bin$COMPOSER_HOME/vendor/binCOMPOSER_HOME%APPDATA%\Composer\vendor\bin%APPDATA%\Composer\bin~/.zshrc~/.bash_profilesource ~/.zshrcecho $PATH | grep composerecho %PATH%laravel --versionCOMPOSER_HOMEcomposer config --global home/vendor/bincomposer global config bin-dir --absolute/home/alex/.composer/vendor/binls -l ~/.composer/vendor/bin/ | grep laraveldir %APPDATA%\Composer\vendor\binCOMPOSER_HOMEcomposer config --global --unset homesymfony/consolephpcomposer global require laravel/installer:^5.0rm -rf ~/.composer/vendorcomposer global remove laravel/installerCOMPOSER_HOMEphpunitvendor/binPATHcomposer global update