换国内镜像源是解决 composer 安装 workerman 卡顿的必做项,需严格满足命令格式、type 值、https 且末尾带斜杠三项条件,并优先使用项目级配置;若仍卡在依赖解析,则与网络无关,需检查 php 环境及扩展。

Workerman 本身不依赖特殊网络,但 composer require workerman/workerman 卡住或极慢,90% 是因为 Composer 还在直连海外 packagist.org——换国内镜像源是最快见效的一步,不是可选项,是必做项。
composer config -g repo.packagist 命令必须写对三个硬性条件
多数人执行完命令没提速,不是镜像不行,是命令本身没生效:
-
repo.packagist不能写成repos.packagist(多一个s)或packagist(少repo.前缀),Composer 完全忽略,且不报错 - 中间的
composer是type值,不能省;漏掉它,Composer 2.2+ 会静默 fallback 到官方源 - URL 必须是 HTTPS + 末尾带斜杠:
https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(少斜杠会导致packages.json404,然后自动退回去)
验证是否成功:运行 composer config -g repo.packagist,输出必须是完整 JSON,形如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null 或只显示字符串 URL,都说明没写进去。
项目级配置比全局更可靠,尤其搭配 Workerman 使用时
Workerman 常用于 CLI 场景(如 php start.php start -d),而很多部署环境(宝塔、Jenkins、Docker)里执行 Composer 的用户和你本地终端不是同一个,全局配置可能完全不生效:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 进项目根目录,运行
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(去掉-g) - 这条命令会安全地往
composer.json的repositories字段里加一条"packagist"条目,不会清空你已有的私有源 - 如果项目已有
"repositories": { "my-private": { "type": "vcs", ... } },手动编辑时务必同时在composer.json根节点加"packagist.org": false,否则私有源和镜像共存时可能冲突
这样配置后,所有协作者、CI 流水线、宝塔「一键部署」都会走同一镜像,生成的 composer.lock hash 也一致。
换源后 composer require workerman/workerman 还卡在 Resolving dependencies?那和镜像无关
镜像只加速元数据请求(如 packages.json)和 tarball 下载,不影响依赖解析逻辑:
- 如果卡在
Resolving dependencies,大概率是项目已有复杂约束(比如锁定了 PHP 版本、其他包的旧版本),跟网络无关;可加-vvv看具体卡在哪条规则 - Workerman 安装成功但运行报
undefined function pcntl_fork(),是 PHP CLI 没启用pcntl扩展,不是 Composer 问题 - 首次用新镜像执行
composer install或require若报 hash 不匹配,删掉vendor/和composer.lock重来最稳妥
真正容易被忽略的是:Workerman 依赖系统扩展和 CLI 环境,镜像再快,pcntl 关着、PHP 版本不对、或者用 Windows CMD 直接跑,照样起不来——先确认运行环境,再谈安装速度。










