必须彻底清除composer_home环境变量并重启终端,否则composer永远忽略默认路径;还需删除config.json中残留的"home"字段,并将vendor/bin路径加入系统path,windows用户须重装composer-setup并清理注册表。

COMPOSER_HOME环境变量必须彻底清除
只要COMPOSER_HOME环境变量存在,Composer 就永远忽略默认路径——哪怕你已经用composer config --global home改回去了。这不是配置没生效,是环境变量在运行时直接劫持了整个全局工作目录。
操作要点:
- Linux/macOS:运行
unset COMPOSER_HOME,再执行echo $COMPOSER_HOME确认无输出 - Windows CMD:
set COMPOSER_HOME=(等号后不留空格) - Windows PowerShell:
Remove-Item Env:\COMPOSER_HOME - 所有平台:关掉当前终端窗口,新开一个再验证,否则旧进程仍读取缓存值
检查config.json里是否残留手动写的home字段
COMPOSER_HOME清空后,Composer 会 fallback 到默认路径,但如果你之前在~/.config/composer/config.json(≥2.2)或~/.composer/config.json(旧版)里手动加过"home"字段,它仍会优先读这个错误值。
解决方法:
- 打开对应
config.json文件,搜索"home"或"COMPOSER_HOME" - 删掉整行,比如
"home": "/wrong/path",不要只改路径 - 保存后运行
composer config --global home,应返回~/.composer(Linux/macOS)或%APPDATA%\Roaming\Composer(Windows)
Windows用户务必重装Composer-Setup.exe
仅清环境变量和配置文件,对 Windows 用户不够——composer.bat依赖注册表中记录的 PHP 路径,不是当前php.exe位置。常见现象:composer --version成功,但composer diagnose报PHP binary not found或Global Config: Failed to initialize。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
重装前必须清理:
C:\ProgramData\ComposerSetup%USERPROFILE%\AppData\Roaming\Composer- 注册表项:
HKEY_CURRENT_USER\Software\Composer和HKEY_LOCAL_MACHINE\SOFTWARE\PHP\Composer
重装时勾选Install for all users,并手动指定php.exe的**完整绝对路径**(不能含空格或相对路径)。
验证vendor/bin命令是否回归PATH
即使COMPOSER_HOME恢复默认,vendor/bin目录若没进系统PATH,laravel、phpunit这些全局命令依然找不到。
验证与修复步骤:
- 先查真实路径:
composer config --global bin-dir --absolute - Linux/macOS:把输出路径加到
~/.zshrc末尾:export PATH="$(composer config --global bin-dir --absolute):$PATH",然后source ~/.zshrc - Windows:将该路径添加到「用户变量」→
Path(不是系统变量) - 新开终端,运行
which laravel(macOS/Linux)或where laravel(Windows)确认可执行文件位置
真正容易卡住的地方,是环境变量、注册表、配置文件三者优先级不一致,加上终端进程不刷新——你以为改完了,其实 Composer 还在读上一个会话里的旧值。










