Composer install报错90%源于本地状态污染、镜像未生效或权限错乱,须同步执行清缓存、删vendor与composer.lock、验证真实请求地址(composer install -vvv)、修复属主(sudo chown -R $USER:$USER),缺一不可。

Composer install 报错,90% 不是包本身有问题,而是本地状态污染、镜像没走对、或权限错乱。换源不清理缓存、配了全局却卡在项目级配置里、删 vendor 不清 lock——这些操作单独做都无效。
composer install 卡在 “Downloading” 但日志里还是 packagist.org
这不是网络慢,是根本没走你配的镜像。关键看真实请求地址,不是看 config 输出。
- 运行
composer install -vvv 2>&1 | head -n 10 | grep Downloading,第一行 URL 才是实际发出去的地址 -
composer config -g repo.packagist必须输出完整 JSON,如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};空、null或仍是packagist.org,说明配置失败 - 检查项目根目录
composer.json是否含"repositories"字段:哪怕只是[]或{},也会完全屏蔽全局镜像 - CI/CD 或宝塔环境常见问题:用
root配了全局镜像,但构建脚本以www用户运行,得用sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
报 “Could not fetch https://packagist.org/packages.json” 或 “Connection refused”
这是系统级连通失败,和 Composer 版本、PHP 扩展无关,先别动配置文件。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
curl -I https://packagist.org/packages.json:返回curl: (35) SSL connect error→ TLS 层问题;返回Could not resolve host→ DNS 污染 - 不要改系统 DNS,优先用镜像源:执行
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意末尾斜杠) - 企业内网若用 HTTPS 解密代理(如 Zscaler),需额外信任证书;临时调试可加
COMPOSER_DISABLE_TLS=1,但不可长期启用 - macOS 常见 OpenSSL 冲突:运行
php -r "print_r(openssl_get_cert_locations());"看default_cert_file路径是否可读,不行就手动设curl.cainfo到 Mozilla 官方 CA 包
报 Permission denied 写 vendor/ 或 composer.lock
这不是权限不够,是目录“认错了主人”。sudo 运行过 Composer 后,vendor/、composer.lock 或 ~/.composer 的属主变成 root,普通用户再跑就会被拒。
- 查归属:
ls -ld vendor/ composer.lock $(composer config --global home) - 修复命令:
sudo chown -R $USER:$USER vendor/ composer.lock $(composer config --global home) - 千万别
chmod 777,这会破坏 Composer 自身的校验逻辑 - CI 构建中若用 root 构建后交付给 web 用户,必须在交付前
chown -R www-data:www-data vendor/(按实际用户调整)
删了 vendor 和 composer.lock 还是装不上
残留缓存会让 Composer 复用损坏的 ZIP、截断的 installed.json 或失效校验数据,重试只会反复卡在同一位置。
- 必须执行
composer clear-cache - Windows 用户还得手动删
%LOCALAPPDATA%\Composer\cache - 验证镜像可用性:
curl -I https://mirrors.aliyun.com/composer/packages.json必须返回HTTP/2 200;若返回 HTML 页面(如人机验证),说明该镜像不适合自动化场景 - 某些错误如
file_put_contents(): Only variables should be passed by reference其实是镜像返回了 BOM 头或乱码,换阿里云/腾讯云源即可
真正麻烦的从来不是“怎么配镜像”,而是配完之后要不要删 lock、删不删 vendor、清不清 cache、查不查属主——四个动作缺一不可,顺序也不能错。漏掉任意一个,都会让前面所有操作白费。

















