换镜像源并调高process-timeout和http-basic-timeout可解决90%超时问题;卡在create-project的installing dependencies实为静默执行install,需-vvv定位url、补github token或改--prefer-dist。

超时不是 Composer 坏了,而是它在等网络响应或脚本执行——默认 300 秒太短,国内直连 packagist.org 几乎必超时。换镜像源 + 调两个 timeout 参数,90% 场景能立刻恢复。
为什么 composer create-project 卡在 Installing dependencies
这个阶段本质是静默执行 composer install,但不输出进度,容易误判为“卡死”。实际可能正卡在下载某个 ZIP 包(比如 https://api.github.com/repos/laravel/framework/zipball/...)或克隆 Git 仓库。
- 加
-vvv看真实请求:composer create-project laravel/laravel myapp -vvv,观察最后卡在哪条 URL - 若卡在
api.github.com,说明缺 GitHub Token:在~/.composer/auth.json里补上{"github-oauth": {"github.com": "xxx"}} - 若卡在
Cloning into 'vendor/xxx',优先改用--prefer-dist(下 ZIP),避免走 Git 克隆 - 私有包用 SSH 地址(
git@github.com:xxx)时,可能因 SSH 连接超时卡住;换成 HTTPS 地址更稳定
composer install 报 “The process timed out” 怎么调参数
Composer 有两个独立的超时控制:一个是整个命令生命周期(process-timeout),另一个是单次 HTTP 请求(http-basic-timeout)。只改一个,可能仍失败。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 临时生效(推荐调试用):
composer install --timeout=1200 --http-basic-timeout=300 - 永久生效(写入全局配置):
composer config -g process-timeout 1800和composer config -g http-basic-timeout 300 -
http-basic-timeout仅 Composer 2.2+ 支持;旧版本只能靠--timeout和换源硬扛 - 值设为
0表示不限时,但不建议——真卡死时进程会一直挂住,CI 里更危险
换国内镜像源后还是超时?检查这三件事
换源命令执行了,不代表真正生效。很多超时问题其实卡在配置没落地、缓存没清、或项目级配置覆盖了全局设置。
- 验证是否生效:
composer config -g repo.packagist输出必须是带"type": "composer"和完整 HTTPS URL(末尾要有/) - 清缓存:
composer clear-cache,否则旧 provider 地址仍会被复用 - 检查项目根目录下的
composer.json是否含"repositories"字段——哪怕只是空数组[],也会屏蔽全局镜像 - 手动测镜像可用性:
curl -I https://mirrors.aliyun.com/composer/packages.json,必须秒回HTTP/2 200
最易被忽略的是 PHP CLI 的 openssl 配置和 CA 证书路径不一致——php -m 显示有 openssl,但 php -i | grep 'Loaded Configuration File' 发现 CLI 加载的是另一份 php.ini,导致 cURL error 60 被误判成超时。










