卡死非网络问题,而是Composer在HTTP/SSL层被阻断或依赖约束爆炸;换源须用composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/并清缓存,卡在Resolving dependencies时需收紧版本约束而非换镜像。

卡死不是网络差,是 Composer 在 HTTP 层或 SSL 验证环节被阻断;换源必须配 composer config -g repo.packagist,跳过证书验证只能临时用 composer config -g secure-http false,但别留着它上线。
卡在 Downloading 时,先确认镜像是否真生效
终端停在 Downloading https://packagist.org/packages.json 或类似行,说明根本没走国内镜像。别只信 composer config -g repo.packagist 输出,要亲手验证:
- 运行
composer config -g repo.packagist,输出必须是{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}(注意结尾斜杠不能少) - 手动执行
curl -I https://mirrors.aliyun.com/composer/packages.json,返回HTTP/2 200才算通 - 项目根目录下若存在
composer.json且含"repositories"字段,会覆盖全局配置——哪怕写的是空数组[],也得删掉或显式设"packagist.org": false - 换源后不执行
composer clear-cache,旧缓存仍会尝试访问packagist.org,日志里照样出现 TLS timeout
SSL 证书验证失败:不是扩展没开,是 cafile 没配对
file_get_contents(): SSL operation failed 或 cURL error 60: SSL certificate problem 这类报错,90% 不是 openssl 扩展没启用,而是 PHP 找不到有效 CA 证书文件。
- 运行
php -r "print_r(openssl_get_cert_locations());",重点看default_cert_file路径是否存在、可读,内容是否为最新 CA bundle - Windows 用户常见问题是
php.ini里只开了extension=openssl,但没配openssl.cafile和curl.cainfo - 两个配置项必须指向同一份证书文件,例如:
openssl.cafile=C:\php\ca-bundle.crt和curl.cainfo=C:\php\ca-bundle.crt - 临时绕过验证仅用于调试:
composer config -g secure-http false,但长期开启会禁用域名校验,verify_peer_name失效,不安全
ThinkPHP 8.0 安装卡住,别裸跑 create-project
直接 composer create-project topthink/think myapp 极易卡在元数据解析或 dev 包下载上,因为默认拉取 dev-main 分支,且不跳过开发依赖。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
立即学习“PHP免费学习笔记(深入)”;
- 必须加参数锁定稳定版:
--stability=stable - 禁用 Git 克隆(避免 SSH/Git 协议被拦截):
--remove-vcs - 跳过开发依赖(省时间、避扩展缺失):
--no-dev - 生成高效自动加载映射:
--optimize-autoloader - 完整命令:
composer create-project topthink/think tp8 --stability=stable --remove-vcs --no-dev --optimize-autoloader
卡在 Resolving dependencies?跟镜像无关,是约束爆炸
日志停在 Resolving dependencies,说明 Composer 正在暴力回溯版本组合,和网络、镜像、SSL 全无关系。
- 检查
composer.json是否写了宽泛约束,比如"^1.0 || ^2.0"或引入了dev-main的私有包 - 默认内存限制(1.5GB)常不够,尤其含大量
require-dev时,临时加大:php -d memory_limit=-1 composer install -
http.timeout对这一步完全无效,调它等于白忙 - 如果用了
--ignore-platform-reqs强装,后续运行php think run可能报函数不存在——得自己确认 PHP 版本(TP8 要求 ≥ 8.0.2)和扩展是否真满足
真正容易被忽略的是:ThinkPHP 8 的 create-project 模板本身会触发一次静默的 composer install,它不显示进度条,卡住 5 分钟内都可能是正常行为;超时才该怀疑源或权限问题,而不是立刻中断重试。


















