“connection refused”或curl error 7表明请求未发出,根源在系统网络层;需先用ping、curl验证dns与连通性,再严格配置镜像(键名repo.packagist、type值composer、url末尾带/)、清缓存并排除代理及属主权限干扰。

报“Connection refused”或cURL error 7,先别碰composer config
这根本不是 Composer 配错了,是系统压根没发出去请求。DNS 解析失败、防火墙拦截、代理干扰都会触发这个错误,跟 repo.packagist 配得对不对完全无关。
立刻执行两行命令定位根因:
-
ping packagist.org—— 返回unknown host?说明 DNS 挂了,直接改/etc/resolv.conf加nameserver 8.8.8.8(Linux/macOS)或在 Windows 网络适配器里手动设 -
curl -v https://mirrors.aliyun.com/composer/—— 卡在* Connected to是 TCP 层不通;卡在* TLS handshake是证书或 SNI 问题(常见于企业 HTTPS 解密代理)
临时验证是否 TLS 导致:加环境变量 COMPOSER_DISABLE_TLS=1 再跑 composer install(仅调试用,勿留生产)
镜像配置写了却没生效,检查三个硬条件
Composer 2.x 对镜像配置极其严格,漏一个字符就静默 fallback 到官方源,且不报错。
必须同时满足:
- 键名是
repo.packagist(不是repos.packagist,也不是repositories.packagist) - 命令中显式传入
composer作为type值:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - URL 必须是 HTTPS 且以
/结尾:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(会拼成/composerpackages.json导致 404)
验证是否真写进去了:composer config -g repo.packagist 应输出完整 JSON,例如:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
“Could not fetch”或“Unknown transport error”,优先清缓存+直测镜像
这类错误常源于损坏的缓存文件(比如半截 zip 或带 BOM 的 JSON),或镜像本身返回了 HTML(如人机验证页),而非合法 JSON。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
不要重装 Composer,做这几件事:
- 运行
composer clear-cache—— 这比删vendor/和composer.lock更关键 - 用
curl -I https://mirrors.aliyun.com/composer/packages.json直接测镜像:必须看到HTTP/2 200和Content-Type: application/json;若返回302或 HTML,换源(比如腾讯云或华为云) - 检查项目根目录
composer.json是否有"repositories": [...]字段 —— 只要存在,全局镜像就彻底失效,哪怕只写了空数组[]
CI/CD 环境尤其注意:你用 root 配的全局镜像,但实际执行的是 www 用户,得用 sudo -u www composer config -g repo.packagist ... 单独配
Permission denied 写 vendor/ 或 composer.lock
99% 是目录归属权被 sudo 污染了。比如你某次用 sudo composer install,vendor/ 和 ~/.composer 就变成 root 所有,之后普通用户再运行就直接被拒。
查问题最快方式:看报错里带路径的那一行,例如 file_put_contents(/path/to/vendor/autoload.php): Permission denied → 立即执行 ls -ld /path/to/vendor,如果 owner 是 root,就是归属问题。
修复命令(Linux/macOS):sudo chown -R $USER:$USER /path/to/project
别乱 chmod 777 —— 这治标不治本,还可能引发安全警告;CI/CD 中更需注意用户上下文切换










