只配 http-proxy 仍连不上 Packagist,因其全量走 HTTPS,而 http-proxy 仅处理 HTTP 请求;必须同时配置 http-proxy 和 https-proxy(均需 http:// 开头),缺一则 HTTPS 请求直连失败,导致卡在 “Loading composer repositories”。

只配 http-proxy 为什么还是连不上 Packagist
因为 Packagist 全量走 HTTPS,而 http-proxy 只处理 HTTP 请求,对 https://packagist.org 这类地址完全无效。Composer 会把 HTTPS 请求交给 https-proxy 字段,缺了它就 fallback 直连——结果就是卡在 Loading composer repositories,没报错也没进度。
必须同时配置两个字段,且协议头不能错:
-
http-proxy值必须是http://开头(哪怕代理监听 HTTPS 端口) -
https-proxy值也必须是http://开头,不是https://或无协议 - 若代理需要认证,用户名或密码含
@、/、:,得先用rawurlencode()编码,比如pa@ss/word→pa%40ss%2Fword - 命令必须加
-g(全局),否则只写入当前项目composer.json,换目录就失效
镜像源和代理能一起用吗
不能。二者互斥:repo.packagist 镜像配置一旦生效,http-proxy 和 https-proxy 就被完全忽略;反之,开了代理,镜像配置就形同虚设。
混配最常见后果是 Loading composer repositories 卡死、静默失败、或 TLS 握手错误。国内用户 90% 的“卡住”问题,根源就是同时配了腾讯云/阿里云镜像和本地代理。
真要走代理,第一步永远是清空镜像:
- 执行
composer config -g --unset repo.packagist(注意不是repos.packagist) - 再补全
http-proxy和https-proxy两条配置 - 验证:运行
composer config -g --list | grep -E "(http|https)-proxy",两行都得有值且格式正确
腾讯云服务器上该选镜像还是代理
绝大多数情况该选镜像。你在腾讯云 CVM 上跑 composer install,大概率不是网络不通,而是 DNS 解析慢或 HTTPS 握手卡在海外节点。直接切腾讯云官方镜像,比配代理快且稳定。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(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.cloud.tencent.com/composer/
然后立刻清缓存:composer clear-cache。再跑 composer show laravel/framework --no-ansi | head -n 3,看到 URL 含 mirrors.cloud.tencent.com 就说明生效了。
容易被忽略的细节:
- URL 末尾的
/不能少,少了会报Invalid repository type - 如果项目根目录
composer.json里写了repositories字段,它会覆盖全局配置,得先删掉或注释掉 - 镜像站本身仍是 HTTPS 地址,若公司策略强制所有 HTTPS 流量过代理,那即使用了镜像,没配
https-proxy一样连不上
NTLM 代理或证书不信任怎么办
Composer 原生不支持 NTLM 认证。设了 http-proxy 也会直接返回 407 Proxy Authentication Required 或 Unable to connect to http://repo.packagist.org。
解决办法只能引入中转代理工具,比如 cntlm 或 px,让它们监听 127.0.0.1:3128 并处理 NTLM,再让 Composer 连这个本地地址。
证书问题更隐蔽:典型报错是 file_get_contents(): SSL operation failed 或 cURL error 28。这不是网络慢,而是代理转发时证书不被信任。修复方式:
- 运行
composer config -g cafile /path/to/your-root.pem指向公司根证书(别用系统默认的ca-bundle.crt) - Windows + WSL2 用户常因时间不同步导致握手失败,运行
sudo hwclock -s同步主机时间 - 临时验证是否真走代理:加
-n -vvv运行composer install,日志里出现Proxy CONNECT才算成功

















