composer默认不读http_proxy/https_proxy环境变量,仅识别自身配置的http-proxy和https-proxy键,且需成对配置、协议匹配;推荐优先切换阿里云等镜像源(如composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/)以规避代理不稳定问题。

composer install 默认不读 HTTP_PROXY 或 HTTPS_PROXY 环境变量,这是它和大多数 CLI 工具最不一样的地方——你设了也没用。
为什么 HTTP_PROXY 环境变量对 Composer 完全无效
Composer 启动后直接忽略 shell 里导出的 HTTP_PROXY 和 HTTPS_PROXY,哪怕你运行 export HTTP_PROXY=http://127.0.0.1:7890 再执行 composer install,它照样走直连。这不是 bug,是设计如此:它只认自己配置系统里的 http-proxy 和 https-proxy 两个键。
- 缺一个就会失败:比如只配了
http-proxy,所有 HTTPS 请求(包括访问https://packagist.org)会卡在Resolving dependencies或报cURL error 35 - 协议必须匹配:给
https-proxy配一个 HTTP 地址(如http://127.0.0.1:7890),连接会被静默拒绝——必须是支持 CONNECT 隧道的代理(Clash、Squid 4.0+、Charles 等) - 全局配置命令要成对执行:
composer config -g http-proxy http://127.0.0.1:7890和composer config -g https-proxy http://127.0.0.1:7890缺一不可
换镜像源比配代理更稳,尤其在腾讯云/阿里云环境
国内云服务器走代理常遇到 DNS 污染、CONNECT 隧道不稳定、TLS 握手失败等问题。直接切官方镜像源,能绕过 90% 的网络问题,且无需维护代理服务。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 阿里云镜像命令必须严格按格式执行:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意末尾斜杠、repo.packagist是单数、composer是 type 值) - 验证是否生效:
composer config -g repo.packagist应输出完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 腾讯云用户建议优先试这个,比折腾代理快得多;如果项目强依赖私有包或 GitHub,再回头配
https-proxy
COMPOSER_HOME 改了,代理配置也要跟着迁
如果你用 COMPOSER_HOME 指向了自定义路径(比如 /opt/my-composer),那 http-proxy 和 https-proxy 的配置不会自动复制过去——它们只存在原 ~/.composer/config.json(Linux/macOS)或 %APPDATA%\Roaming\Composer\config.json(Windows)里。
- 改完
COMPOSER_HOME后,必须手动把auth.json和config.json拷过去,否则composer config -g http-proxy会写到新目录,但旧配置还在老地方,行为混乱 - 验证方式:
composer config --global home输出路径,再cat $(composer config --global home)/config.json | jq '.config."http-proxy"看值是否存在 - 别指望
composer global require装的插件能帮你自动代理——它们也受限于同一套配置机制
真正容易被忽略的是:代理配置不是“设一次就永远有效”。一旦你换了终端、进了 Docker、跑 CI job,COMPOSER_HOME 和全局 config 就可能错位;而镜像源只要 repo.packagist 配对成功,基本不挑环境。










