答案是报错关键词决定排查方向:“Connection refused”属网络连通失败,需验DNS、切镜像并清缓存;“Permission denied”多因目录归属被root污染,应chown修复而非chmod;“Your requirements could not be resolved”实为PHP版本或扩展不匹配,须核对platform.php及启用mbstring等扩展。

Composer install 报错,八成不是依赖冲突,而是镜像没配对、缓存已损坏、权限被污染,或 PHP 环境不匹配——先别急着删 vendor,得看报错关键词往哪走。
报 “Connection refused” 或 “cURL error 7” 怎么办
这说明请求压根没发出去,不是 Composer 慢,是系统连不上源。DNS 解析失败、防火墙拦截、镜像 URL 写错都会触发这个错误。
- 运行
ping packagist.org:返回unknown host就是 DNS 问题,临时换8.8.8.8测试 - 检查镜像是否生效:
composer config -g repo.packagist输出必须是完整 JSON,例如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};空、null或仍是https://packagist.org,说明根本没写进去 - URL 必须 HTTPS + 末尾带
/:写成https://mirrors.aliyun.com/composer(缺斜杠)会导致拼出/composerpackages.json这种非法路径,返回 404 - 换源后必须清缓存:
composer clear-cache,否则旧失败记录还在,重试照样走原地址
报 “Your requirements could not be resolved” 不是版本冲突
这是 composer.lock 文件里锁死的包,和你本地环境不兼容。它不是“装不了”,是“不该在这台机器上装”。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查 PHP 版本:
php -v,对比composer.lock里platform.php字段(如有)或依赖包的require.php(比如 monolog v3.5.0 要求PHP >=8.1) - 检查扩展是否启用:
php -m | grep -E "(mbstring|xml|curl|openssl|fileinfo)",缺哪个就装哪个(CentOS 上可能是sudo yum install php-fileinfo) - 注意 CLI 和 Web 的 php.ini 可能不同:运行
php --ini看加载的是哪个配置,fileinfo很可能只在 FPM 里开了,CLI 没开 - 别加
--ignore-platform-reqs硬扛——装完大概率运行时报Class not found或Call to undefined function mb_strlen()
报 “Permission denied” 写 vendor 或 composer.lock
这不是权限不够,是目录“认错了主人”。常见于用 sudo composer install 后再用普通用户操作,或者宝塔/CI 里用户身份不一致。
- 看报错路径:
file_put_contents(/path/to/vendor/autoload.php): Permission denied→ 直接ls -ld vendor/,如果属主是root,就用sudo chown -R $USER:$USER vendor/ composer.lock - 全局配置也被污染时:
composer config --global home输出如果是/root/.composer,说明之前用了sudo composer global require;删掉/root/.composer,再用普通用户重配 - 宝塔环境特别注意:面板默认用
www用户执行命令,你在终端用root配的全局镜像,www根本读不到;改用sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
卡在 “Loading composer repositories” 或日志里没出现镜像域名
说明 Composer 根本没走你配的镜像,而是 fallback 到了官方源,或者被项目级配置覆盖了。
- 运行
composer install -vvv 2>&1 | head -n 10 | grep Downloading,第一行 URL 才是真实请求地址;只看composer config输出没用 - 检查项目
composer.json是否含"repositories"字段:哪怕只是"repositories": [],也会完全屏蔽全局镜像;可临时执行composer config --unset repositories清掉 - Windows 用户还要手动删
%LOCALAPPDATA%\Composer\cache,composer clear-cache有时不彻底 - 删
vendor/和composer.lock再试——composer.lock里硬编码了旧 provider 地址,不清它,Composer 就一直重试失败路径
最常被忽略的一点:镜像只加速拉取,不修复 CA 证书过期、PHP openssl 配置错误或 composer.json 里多了一个空格这种低级语法问题。报错里带 JSON decode error 或 file_put_contents(): Only variables should be passed by reference,十有八九是镜像返回了 HTML 页面(比如人机验证),换阿里云/腾讯云源再试。

















