改了镜像源仍超时,是因为Composer默认http-timeout(300秒)不足,需单独配置:全局执行composer config --global http-timeout 600,或临时设环境变量COMPOSER_HTTP_TIMEOUT=600。

为什么改了镜像源还超时?
换上阿里云或腾讯云镜像后仍卡在 Downloading https://,不是镜像失效,而是 Composer 默认的 http-timeout(300 秒)不够用——尤其在低带宽、高延迟或 TLS 握手慢的网络下,哪怕镜像本身很快,单次 HTTP 请求也可能被提前中止。
http-timeout 必须单独调,和镜像源无关
http-timeout 控制所有 HTTP 请求(拉取 packages.json、下载 ZIP 包)的最大等待秒数,它和镜像 URL 是解耦的。只换源不调这个值,等于“换了一条高速路但没放宽红绿灯倒计时”。
- 项目级生效:
composer config http-timeout 600,写入当前composer.json的config段 - 全局生效:
composer config --global http-timeout 600,影响所有项目(Composer 2.x / 1.10+ 支持) - 临时覆盖(优先级最高):
COMPOSER_HTTP_TIMEOUT=600 composer install - PHP 底层也得同步检查:
php -i | grep default_socket_timeout,CLI 模式若低于 600,需临时绕过:php -d default_socket_timeout=600 $(which composer) install
process-timeout 和脚本超时是另外两回事
如果你卡在 Installing dependencies 或报 The process timed out,那是子进程(如 git clone、unzip、自定义 PHP 脚本)执行太久被杀,和 HTTP 下载完全无关。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
process-timeout默认 300 秒,只管子进程执行时长;全局配置已废弃,真正有效的全局方式是环境变量:export COMPOSER_PROCESS_TIMEOUT=1800(Linux/macOS) - 自定义脚本(如
post-install-cmd)超时由 PHP 的max_execution_time控制,不是 Composer 配置项:php -d max_execution_time=0 composer install - 别在
composer.json的config里写"timeout": 600—— 这个字段不存在,无效
镜像源配置本身容易出错
很多人执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 后没生效,90% 是命令写错了:
- 必须是
repo.packagist,不能写成repos.packagist或packagist - 中间的
composer是 type 值,漏掉会导致 fallback 到默认源,且不报错 - URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌ - 验证是否成功:
composer config -g repo.packagist输出应为完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
CI/CD 或宝塔等环境要注意执行用户:全局配置写在 /root/.composer/config.json,但 www 用户运行时读不到,得用 sudo -u www composer config -g ... 单独配。

















