Composer 2.2+ 已废弃 repo.packagist 键名,必须改用 repositories.packagist.org.type 和 .url 双命令配置,且 URL 末尾须带 /;任一错误即静默失效,验证需输出完整 JSON。

composer config -g repo.packagist 不生效?键名已废弃
Composer 2.2+ 彻底移除了 repo.packagist 这个键名,无论你执行多少次 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,配置都会被静默忽略——不报错、不提示、也不起作用。
真正有效的全局镜像配置必须拆成两条命令,缺一不可:
composer config -g repositories.packagist.org.type composercomposer config -g repositories.packagist.org.url https://mirrors.aliyun.com/composer/
常见错误包括:repositories.packagist.org.url 少了末尾 /(导致请求路径变成 /p2/xxx.json 而非 /composer/p2/xxx.json),或把 packagist.org 写成 packagist.com、packagist 等变体。验证是否写对:运行 composer config -g repositories.packagist.org,输出应为完整 JSON 对象,例如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。
明明配了镜像,composer install 却还在连 packagist.org
这不是配置没加载,而是项目级 composer.json 中的 repositories 字段直接覆盖了全局设置。只要存在该字段(哪怕值是空数组 {}、"packagist.org": false,甚至只是旧镜像地址),全局镜像就完全失效。
排查方法很直接:
- 在项目根目录运行
composer config repositories,看输出里packagist.org的url是什么 - 用
grep -A5 '"repositories"' composer.json检查是否硬编码了已下线源(如https://packagist.phpcomposer.com) - 临时清除:执行
composer config --unset repositories(注意没有-g),再试composer install
CI/CD 环境(如 GitHub Actions)默认不继承本地全局配置,必须在 workflow 中显式执行上述两条 config 命令。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
SSL certificate problem: unable to get local issuer certificate
这不是 Composer 配置问题,而是 PHP 底层 OpenSSL 拒绝信任你的 CA 根证书——无论是企业自签名证书,还是容器中缺失系统 CA bundle。
先确认 PHP 是否有可用证书“尺子”:
- 运行
php -r "print_r(openssl_get_cert_locations());",紧盯default_cert_file和ini_cafile。如果为空、路径不存在、或对应文件大小 ≤10KB,说明 PHP 根本没加载有效 CA 证书 - 再跑
curl -v https://your-mirror.example.com/packages.json,如果同样报 SSL 错误,问题就锁死在本地 TLS 环境
生产环境必须做的是:拿到 PEM 格式根证书(以 -----BEGIN CERTIFICATE----- 开头),编辑 CLI 模式生效的 php.ini(先用 php --ini 确认路径),添加:openssl.cafile = "/path/to/your/root-ca.pem"。改完重启终端,CLI 进程下次调用时自动生效。
composer diagnose 显示 OK,但 install 仍失败
composer diagnose 只检查 PHP 环境和缓存路径,完全不发网络请求,也不读你的镜像配置。它显示 OK ≠ 镜像可用,更不等于 HTTPS 可通。
真实验证方式只有一条:
- 用
curl -I https://mirrors.aliyun.com/composer/packages.json直打镜像地址,必须返回HTTP/2 200或HTTP/1.1 200 OK - 返回
404:URL 缺后缀(比如华为云正确地址是https://mirrors.huaweicloud.com/repository/php/,不是/composer/) - 返回 HTML 页面:清华源等镜像公网访问会触发人机验证,生产环境建议换阿里云或腾讯云
加 -vvv 才能看到真实失败点:composer install -vvv --no-ansi 2>&1 | grep "GET\|curl error"。如果看到 curl error 60,就得配 composer config -g cafile /path/to/cert.pem;如果看到 curl error 7,说明 DNS 或防火墙拦了域名——跟证书无关。

















