Composer install 报错“Connection refused”或超时是因直连境外Packagist失败,应换用阿里云镜像并删除vendor和composer.lock后重装,同时确保系统时间准确、autoload引入正确、避免在Git Bash/WSL中执行。

Composer install 报错 “Connection refused” 或超时
国内直连 Packagist 官方源经常失败,不是你网络问题,是服务器在境外且没走镜像。不换源就反复重试,只会浪费时间。
实操建议:
- 运行
composer config -g repo.packagist composer https://packagist.phpcomposer.com(旧版镜像,已停用)→ 改用官方推荐的阿里云镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 如果项目已存在
composer.json,执行前先删掉vendor/和composer.lock(原因见下一条) - 确认系统时间准确——SSL 证书校验失败也会表现为连接拒绝,
date命令看一眼就知道
删了 vendor 但 composer install 还报依赖冲突
根本原因是 composer.lock 文件锁死了旧版本约束,Composer 会优先按 lock 文件还原,哪怕 composer.json 已改。
实操建议:
- ThinkPHP 项目升级或换环境时,必须删
composer.lock再装,否则可能拉到不兼容的子依赖 - 删之前确认
composer.json里的 ThinkPHP 版本号写对了,比如"topthink/framework": "^6.0",别漏了^或写成6.0.0 - 删完直接跑
composer install,别用update——后者会重新解析全部依赖树,容易触发意外降级
安装完 vendor 里没有 thinkphp 目录
不是安装失败,是 ThinkPHP 6+ 默认以服务提供者方式注册,核心类不在 vendor/topthink/framework/src 下直接暴露为可 require 的路径,而是通过 Composer 自动加载机制注入。
实操建议:
- 检查
vendor/autoload.php是否被正确引入——入口文件public/index.php第一行必须是require __DIR__ . '/../vendor/autoload.php'; - 运行
php think看是否输出命令列表;如果报错Class 'think\App' not found,大概率是 autoload 没生效或命名空间加载规则被破坏 - 别手动复制 src 到项目根目录——这会绕过 Composer 自动加载,后续升级、扩展包集成全崩
Windows 下执行 composer install 卡在 “Installing dependencies” 不动
常见于 Git Bash 或 WSL 环境混用,Composer 启动的进程权限或路径解析异常,尤其遇到需要解压 zip 包或调用 git clone 的包时。
实操建议:
- 关掉所有终端,用 Windows 原生 CMD 或 PowerShell 重试,避免 Cygwin/MSYS2 兼容层干扰
- 临时关闭杀毒软件——某些国产安全软件会拦截 Composer 解压临时文件的行为,表现为静默卡住
- 加
-vvv参数看卡在哪一步:composer install -vvv,通常能定位到具体包或操作(比如卡在Downloading https://mirrors.aliyun.com/composer/dists/...就说明还是源的问题)
ThinkPHP 依赖安装真正的难点不在命令本身,而在于 lock 文件、镜像源、自动加载三者之间的隐式耦合——改一个,另外两个往往得同步动,但文档很少明说。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










