composer self-update 卡住是因访问 https://getcomposer.org/installer 被国内网络拦截,与镜像源配置无关;正确解法是手动下载 GitHub Releases 的 composer.phar 并校验覆盖。

composer self-update 卡在下载阶段,根本不是 Composer 的错
它卡住,是因为命令内部尝试访问 https://getcomposer.org/installer 下载新版本的 composer.phar,而这个地址在国内多数网络环境下(尤其是企业、校园网)被拦截或限速。错误常表现为 cURL error 28: Operation timed out 或 SSL certificate problem。这不是配置错了,也不是缓存坏了,是下载通道被堵死。
别试 composer config -g repo.packagist 换镜像源
这条命令改的是包管理源(composer install/update 用的),对 self-update 完全无效——它压根不走 packagist 配置。很多人反复换阿里云、腾讯云镜像,结果 self-update 还是一样失败,就是踩了这个坑。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
self-update只认https://getcomposer.org/及其 GitHub Releases API -
--snapshot、--1、--update-keys等参数也走同一域名,一样被拦 - 临时设
COMPOSER_DISABLE_TLS=1虽能绕过证书校验,但生产环境严禁使用
手动下载替换是最稳的方案
直接去 GitHub Releases 页面拿最新稳定版 composer.phar,校验后覆盖本地文件,全程可控、不依赖网络代理策略。
- 打开
https://github.com/composer/composer/releases,找 latest tagged release(如v2.9.6) - 下载对应链接里的
composer.phar(不是 zip 包,是单独的 phar 文件) - 校验 SHA256:Linux/macOS 用
shasum -a 256 composer.phar,Windows 用certutil -hashfile composer.phar SHA256,比对页面下方给出的 hash 值 - 确认当前生效路径:
which composer;再看是否为软链接:ls -l $(which composer) - 如果是 symlink(如指向
~/.composer/composer.phar),直接覆盖目标文件;如果是独立二进制(如/usr/local/bin/composer),需sudo mv composer.phar /usr/local/bin/composer && sudo chmod +x /usr/local/bin/composer
Windows 用户特别注意两个隐形陷阱
浏览器“另存为”下载的文件常被自动加 .zip 后缀,或者 Windows Defender 把新 composer.phar 当可疑文件干掉,导致替换后执行报 Access is denied。
- 别用浏览器下载,改用命令行:
curl -o composer.phar https://github.com/composer/composer/releases/download/2.9.6/composer.phar - 若原安装在
C:\ProgramData\ComposerSetup\bin\composer.phar,需以管理员权限运行 CMD 替换 - 替换后运行
php -d phar.readonly=0 composer.phar --version,若报PharError,说明 PHP 配置里phar.readonly = On,得去php.ini改成Off
composer 命令到底指向哪个文件、谁在管它、有没有软链接没更新——这些细节一错,覆盖了也白搭。

















