composer global require仅适用于安装多项目共用的CLI工具(如phpunit、phpstan),需将~/.composer/vendor/bin(Linux/macOS)或%APPDATA%\Composer\vendor\bin(Windows)加入PATH,否则命令不可用;误装库类包会污染全局环境,清理应先删composer.json条目再global update。

composer global require 不是用来共享项目依赖的,它只适合装 CLI 工具类包,且必须确保 ~/.composer/vendor/bin 在系统 PATH 里,否则命令根本执行不了。
为什么 composer global require 装的命令找不到?
最常见原因是 ~/.composer/vendor/bin(Linux/macOS)或 %APPDATA%\Composer\vendor\bin(Windows)没加进系统 PATH。装完后直接敲 phpunit 报 command not found 就是这个原因。
- Linux/macOS:在
~/.bashrc或~/.zshrc末尾加一行export PATH="$HOME/.composer/vendor/bin:$PATH",然后source ~/.zshrc - Windows:在「系统属性 → 高级 → 环境变量」中,把
%APPDATA%\Composer\vendor\bin加到用户或系统PATH,重启终端生效 - 验证是否生效:运行
echo $PATH(macOS/Linux)或echo %PATH%(Windows),确认路径已存在
composer global require 能装哪些包?
只推荐装那些你**在多个项目中都用命令行调用、且不参与业务代码逻辑**的工具。比如:
-
phpunit/phpunit:跑测试,命令是phpunit -
phpstan/phpstan:静态分析,命令是phpstan -
laravel/installer:新建 Laravel 项目,命令是laravel -
symfony/cli:Symfony 官方 CLI,命令是symfony -
fabpot/php-cs-fixer:代码格式化,命令是php-cs-fixer
别装 monolog/monolog 或 guzzlehttp/guzzle 这类库——它们不是 CLI 工具,装了也调用不了,还可能污染全局 autoload。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
装错包了怎么清理?
全局安装没有“回滚”机制,删错包容易残留二进制文件或 autoload 映射。安全做法是:
- 先删
composer.json里的对应条目:sed -i '/"package-name"/d' ~/.composer/composer.json(Linux/macOS) - 再强制重装全局 vendor:
composer global update --no-interaction(这会清掉未声明的包) - 手动检查
~/.composer/vendor/bin/下是否还有残留可执行文件,有就rm掉 - 如果用了
composer-bin-plugin等插件管理多环境,清理前先确认它是否接管了该包
国内用户要注意镜像和权限问题
全局安装时如果卡在下载环节,大概率是 Packagist 访问慢或被限流:
- 设阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 某些共享主机禁用
proc_open(),会导致global require卡住或报fork failed;这种环境下只能本地装好再上传整个~/.composer目录 - Mac 上用 Homebrew 装的 PHP 可能默认不启用
openssl扩展,导致 HTTPS 请求失败,需手动开启
真正麻烦的不是装不上,而是装上之后发现命令能运行但行为异常——比如 phpstan 扫描时提示找不到项目 autoload,那说明它误读了全局 autoloader,这时候就得关掉全局 autoload 或改用项目本地安装。

















