应直接换国内镜像源(如阿里云),因packagist官方不支持内网直连,而国内镜像已同步完整稳定;卡在“loading composer repositories”是因默认访问packagist.org失败,非composer故障。

直接换镜像源,别折腾代理或改 hosts —— Packagist 官方不支持内网直连,但国内镜像已同步完整且稳定。
为什么 composer install 卡在 “Loading composer repositories”
这是最典型的症状:Composer 默认向 https://packagist.org 发起 HTTPS 请求,内网机器若无出网权限或 DNS 解析失败,就会超时卡住,甚至报 cURL error 7: Failed to connect 或 Could not resolve host: packagist.org。不是 Composer 本身坏了,是网络路径断了。
- 别试
composer config -g repo.packagist composer https://packagist.phpcomposer.com—— 这个旧镜像已停服多年 - 别手动改
composer.json的repositories字段来硬切 —— 全局配置更安全、不影响项目协作 - 确认是否真没网:跑一次
curl -I https://mirrors.aliyun.com/composer/,能返回200就说明镜像可达
怎么设置阿里云 / 清华源(推荐阿里云)
用 composer config 写入全局镜像,所有后续项目自动生效,且不污染项目 composer.json。
- 设阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 设清华镜像(备用):
composer config -g repo.packagist composer https://packagist.phpstudy.net/(注意:不是tsinghua.edu.cn域名,该域名已弃用) - 验证是否生效:
composer config -g repo.packagist应输出对应 URL - 如果之前执行过
composer update失败导致vendor/和composer.lock残留,先删掉再重试
遇到 file could not be downloaded: php_network_getaddresses: getaddrinfo failed
这错误表面是 DNS 失败,实际常因 PHP 的 OpenSSL 扩展未启用,或系统 CA 证书过期 —— 镜像源换对了也没用。
- 检查
php -m | grep openssl,没输出就去php.ini解开extension=openssl - Windows 下常见于 PHP 自带的
curl.cainfo路径失效,需手动指定:curl.cainfo="D:\php\extras\ssl\cacert.pem" - Linux/macOS 可更新系统证书:
sudo apt update && sudo apt install ca-certificates(Debian/Ubuntu) - 临时绕过证书校验(仅调试!):
composer config -g secure-http false,但别长期开着
镜像同步有小时级延迟,如果你刚发布一个新版本包,别指望立刻能 require 到 —— 等一等,或者确认包是否真推到了 Packagist(而不是只推了 GitHub)。










