webman无法用composer create-project安装,因其骨架zip直连github不走镜像;正确方式是手动下载github releases压缩包后执行composer install。

composer create-project 卡在下载 Webman 骨架,不是你网络差,是它默认仍走境外源拉取 GitHub ZIP —— 即使你已设全局镜像,这一步也常失效。
为什么 create-project 换了镜像还卡住
根本原因:create-project 会先向 Packagist 请求 webman/webman 的 composer.json 元数据,再拼出 GitHub ZIP 下载地址(如 https://api.github.com/repos/webman-php/webman/zipball/v1.5.0)。这个 ZIP 地址不走 Composer 镜像逻辑,而是直连 GitHub,国内访问极慢甚至超时。
- 全局镜像只影响
vendor/包的下载,不影响骨架 ZIP 的拉取 - 即使配置了
repo.packagist,create-project仍会绕过它去调 GitHub API - 错误现象:卡在
Installing webman/webman (v1.5.0): Downloading或直接报cURL error 28: Operation timed out
绕过 GitHub 直连的三种实操方式
推荐按优先级顺序尝试:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
用
--repository参数强制指定骨架源:运行composer create-project webman/webman myapp --repository=https://mirrors.tuna.tsinghua.edu.cn/composer/。注意:该参数仅对元数据获取生效,不能替代后续install镜像,但能避免首次请求失败 -
手动下载 ZIP 并解压:访问
https://github.com/webman-php/webman/releases找最新稳定版(如 v1.5.0),用curl -L https://github.com/webman-php/webman/archive/refs/tags/v1.5.0.tar.gz | tar -xzf - --strip-components=1 -C myapp,再进目录执行composer install -
临时禁用 HTTPS 校验 + 换 GitHub 镜像(慎用):执行
git config --global url."https://hub.fastgit.org/".insteadOf https://github.com/,再跑create-project。但 fastgit 不稳定,且存在安全风险,仅作应急
必须同步做的三件事
只解决骨架下载不够,后续依赖安装仍可能卡住:
- 全局镜像必须带
type:运行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,缺composer类型标识会警告且部分包失效 - 清缓存再重装:执行
composer clear-cache,否则旧的packages.json缓存可能继续触发境外请求 - 加提速参数:
composer install --no-dev --prefer-dist --optimize-autoloader。Webman 依赖 Workerman 等大体积包,--prefer-dist能跳过 Git 克隆,--no-dev避免下载测试工具
验证是否真正生效
别只看命令行输出进度条,要查实质内容:
- 检查
composer.lock文件里任意一个hyperf/或workerman/包的dist.url字段,应为https://mirrors.aliyun.com/composer/dists/...类路径 - 运行
composer config -g repo.packagist,输出必须是完整 JSON 对象,含"type": "composer"和正确 URL - 如果仍卡在
Loading composer repositories,说明secure-http false被误设或镜像 URL 少了末尾/,导致 Composer 拼出错误路径
Webman 安装卡顿的根因不在框架本身,而在 Composer 对骨架和依赖的两套不同下载机制 —— 这一点最容易被忽略,直到反复重试失败才意识到要分两步处理。










