全局安装需先执行composer global require安装包,再手动将vendor/bin路径加入PATH并重载配置才能使用命令;90%的command not found错误源于PATH未正确配置。

全局安装不是“装完就能用”,而是“装完+PATH配置好才能用”——90% 的 command not found 错误,都卡在这一步。
composer global require 是唯一有效的安装命令
Composer 没有独立的 composer global 命令;所谓“全局安装”,实际就是执行:composer global require vendor/package-name。它会把包下载到全局 vendor 目录(Linux/macOS 默认是 ~/.composer/vendor,Windows 是 %USERPROFILE%\AppData\Roaming\Composer\vendor),并把可执行文件(如 laravel、php-cs-fixer)放进 vendor/bin/ 子目录。
但这些二进制文件不会自动注册进系统命令路径。你敲 laravel new myapp 一定会报错,除非你手动把 vendor/bin 加进 PATH。
- 不要尝试
composer global install或composer global update—— 它们不解决 PATH 问题,且global update已被弃用 - 不要依赖
composer global exec当主力方案:它只是临时绕过 PATH 缺失,每次都要多打前缀,不支持交互式 TTY(比如psysh会卡住) - 确认是否已安装:运行
composer global show可列出所有已安装的全局包
Linux/macOS 下必须把 ~/.composer/vendor/bin 加进 PATH
这是最常出错的一环。很多人写了 export PATH="$HOME/.composer/vendor/bin:$PATH" 却没生效,原因通常是:
- 改错了 shell 配置文件:用 zsh 就该改
~/.zshrc,不是~/.bashrc;改完必须source ~/.zshrc(不能只关再开终端) -
~在export中不展开,必须写成$HOME;写~/xxx会导致路径无效 - 检查是否真加进去了:运行
echo $PATH,确认输出里有完整路径(如/home/you/.composer/vendor/bin) - 验证命令是否可识别:运行
which laravel,有输出才算成功;没有就说明 PATH 没生效或路径写错
Windows 用户要注意用户变量和路径展开
Windows 不认 %APPDATA% 或 %USERPROFILE% 这类变量作为环境变量值,必须填完整路径:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 典型路径是:
C:\Users\Alice\AppData\Roaming\Composer\vendor\bin(把Alice换成你自己的用户名) - 添加到「系统属性 → 高级 → 环境变量」里的「用户变量」中
Path,不是「系统变量」(否则可能需要管理员权限) - 改完要新开命令提示符或 PowerShell 窗口——当前窗口不会自动重载
- 验证方式是运行
where laravel,有输出才表示识别成功;也可以直接输laravel --version
别跳过镜像配置,尤其在国内网络下
不配镜像,composer global require 极大概率卡在下载阶段,表现为长时间无响应或超时退出。
推荐执行一次全局镜像设置:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
这个操作只影响后续所有全局安装行为,不影响已有包。如果之后想切回官方源,运行:
composer config -g --unset repos.packagist
注意:-g 参数不能漏,否则只对当前项目生效,起不到全局作用。
PATH 配错、镜像没设、shell 配置没重载——这三个点叠加起来,就是绝大多数人“明明装了却用不了”的真实原因。工具本身没问题,问题永远出在环境链路的某个断点上。

















