composer config -g repo.packagist 必须同时满足四点才生效:键名严格为单数 repo.packagist、第二参数显式写 composer(type 值)、URL 以 https:// 开头且末尾带 /、必须加 -g;否则静默回退官方源,验证需输出完整 JSON 对象。

直接换镜像源并验证是否真正生效,90% 的“失败”不是网络真断了,而是配置没写对、被覆盖或 DNS 污染导致请求发到了错误地址。
composer config -g repo.packagist 不生效的硬性条件
这条命令静默失败率极高——不报错,但 composer install 仍走 packagist.org。必须同时满足:
-
repo.packagist是单数,写成repos.packagist或repositories.packagist.org都无效 - 第三参数
composer是type值,不能省略,也不能替换成 URL - URL 必须以
https://开头,且末尾带/:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(会拼出/composerpackages.json,404) - 必须加
-g,否则只改当前项目,换目录就失效
验证是否成功:运行 composer config -g repo.packagist,输出必须是完整 JSON,例如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};空、null、纯字符串或仍是 https://packagist.org,说明没配对。
项目级 repositories 会彻底屏蔽全局镜像
只要 composer.json 里有 "repositories" 字段,无论内容是 []、{} 还是残留已下线源(如 "https://packagist.phpcomposer.com"),全局配置都会被完全忽略,且不提示。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 检查实际生效的仓库:
composer config repositories - 快速定位:
grep -A5 '"repositories"' composer.json - 临时清除:
composer config --unset repositories(注意无-g) - 若需保留私有源,必须显式把阿里云镜像写进
repositories数组首位,并确保格式为:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
卡在 Resolving dependencies 或 Connection refused 怎么办
这不是 HTTP 超时,根本没发请求,是 DNS 解析失败。改 http.timeout 完全无效。
- 先测 DNS:
dig packagist.org +short或nslookup packagist.org,返回127.0.0.1、空或非官方 IP(如 Fastly 正确出口151.101.10.217)即坐实污染 - 临时绕过:在
/etc/hosts(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts(Windows)末尾加一行:151.101.10.217 repo.packagist.org - 换系统 DNS(如
8.8.8.8)仅作辅助,别依赖它“全局修复”,可能影响内网服务 - 用手机热点试一次——很多企业网/校园网会定向屏蔽
packagist.org和github.com
curl -I https://mirrors.aliyun.com/composer/packages.json 卡在 TLS handshake
常见于 WSL2 时间不同步、PHP 内置 CA 证书过期或企业 HTTPS 解密代理干扰。
- 先校准时间:
date,WSL2 用户执行wsl --shutdown后重启,再同步 Windows 时间 - 查 CA 路径:
php -r "print_r(openssl_get_cert_locations());",确认capath指向有效目录(如/etc/ssl/certs) - Linux/macOS 临时指定:
export COMPOSER_CAFILE=/etc/ssl/certs/ca-certificates.crt - Windows 用户需更新 PHP 自带的
curl-ca-bundle.crt,从 cURL 官网下载新版并更新php.ini中的curl.cainfo - 企业环境若启用了 Zscaler/Netskope 类代理,需额外配置信任其根证书,或联系 IT 部门获取合规接入方式
最常被忽略的是:项目级 repositories 配置和 DNS 污染这两层,它们不会报错,也不会提示,但会让所有镜像配置形同虚设。

















