composer install失败90%因本地环境错配,需重点检查ca证书路径是否一致、系统时间是否偏差超5分钟、阿里云镜像url结尾是否无斜杠且已全局配置并清缓存。

Composer install 失败,90% 不是网络“被墙”,而是本地环境没对上——尤其在国内用阿里云镜像时,错配、缓存残留、证书路径不一致这三处最容易卡死。
composer diagnose --verbose 看什么才管用
它不模拟安装,但能暴露真实瓶颈。重点盯三行输出:
-
CA bundle:路径是否可读?运行php -r "print_r(openssl_get_cert_locations());"对比default_cert_file,不一致就说明 PHP 和 Composer 用的不是同一套证书 -
Checking HTTP connectivity to packagist.org:即便你配了阿里云镜像,diagnose 仍会尝试连原站;若这里 FAIL,说明系统级 HTTPS 根本不通(比如 OpenSSL 缺 CA、系统时间偏差 >5 分钟) -
Repo packagist:后面的 URL 必须是https://mirrors.aliyun.com/composer/(注意结尾无/packages.json),否则镜像没生效
阿里云镜像配了还是连不上?检查这三点
配镜像不是一劳永逸,常见断点在配置层级和缓存残留:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 全局配置优先级高于
composer.json里的repositories,必须用composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意中间有composer关键字) - 换源后不
composer clear-cache,旧失败记录还在,重试照样走原地址 - 某些企业网络走中间人代理,
curl -I https://mirrors.aliyun.com/composer/packages.json若卡在 TLS handshake,加CURL_IPRESOLVE=4强制 IPv4 再试
Permission denied 写 vendor/ 或 composer.lock
这不是权限不够,是目录“认错了主人”。报错里带路径那一行就是线索:
-
file_put_contents(/path/to/vendor/autoload.php): Permission denied→ 直接ls -ld vendor/,看属主是不是root - 只要
vendor/、composer.lock或$(composer config --global cache-dir)中任一目录属主为root,就得sudo chown -R $USER:$USER vendor/ composer.lock ~/.composer - 别
chmod 777,那只会让 Composer 下次更拒绝写入
最常被忽略的是:diagnose 通过 ≠ install 能跑通。它不校验 composer.json 里 require 的 PHP 版本或扩展是否真满足,也不检查磁盘空间是否够解压 vendor —— 这些得靠 composer install -vvv 日志里 “Resolving dependencies” 卡住的位置来反推。










