Composer无“恢复默认”命令,需手动逐个删除process-timeout、http-timeout、http-basic-timeout等配置项,并检查环境变量COMPOSER_PROCESS_TIMEOUT等是否残留。

直接删掉对应配置项即可,Composer 没有“恢复默认”命令,也没有 reset-config 之类的功能。
哪些配置需要手动清理
Composer 的超时行为由多个独立配置项控制,它们可能存在于全局配置(~/.composer/config.json)或项目级配置(composer.json 的 config 字段)中。要“恢复默认”,必须逐个移除:
-
process-timeout:控制整个命令生命周期(含 git clone、解压等),默认值是300 -
http-timeout:控制单次 HTTP 请求总耗时(DNS + TLS + 首字节 + body),默认值是60 -
http-basic-timeout:Composer 2.2+ 引入,仅作用于 Basic Auth 场景下的 HTTP 请求,默认也是60 -
github-protocols、gitlab-protocols等间接影响下载路径的配置,也可能导致超时表现异常
怎么确认某项配置是否还生效
别只看 composer config -g 输出——它会显示所有已设项,但不会标出默认值。真正判断是否“已恢复默认”,得靠实测和检查配置文件:
- 运行
composer config -g process-timeout,如果输出为空或报错Key "process-timeout" does not exist,说明该项已删除 - 打开
~/.composer/config.json,手动搜索"process-timeout"、"http-timeout"等字段,确认不存在 - 项目级配置同理:检查
composer.json中"config"对象内是否还有这些键 - 环境变量优先级更高,记得检查
COMPOSER_PROCESS_TIMEOUT和COMPOSER_HTTP_TIMEOUT是否被设过(env | grep COMPOSER)
删配置后还要清缓存吗
不需要。超时参数不参与缓存计算,也不影响 packages.json 或 ZIP 包的本地存储。但如果你之前换过镜像源或代理,而这次想彻底回归官方源直连,那建议顺手执行:
-
composer clear-cache:避免旧元数据干扰(比如仍尝试从阿里云拉包) -
composer config -g --unset repo.packagist:确保不走镜像 -
composer config -g --unset http-proxy https-proxy:防止代理残留导致 HTTPS 请求静默失败
最易被忽略的是环境变量——即使删光了 config 文件,只要终端里还 export 过 COMPOSER_PROCESS_TIMEOUT,它就一直生效。关掉当前 shell 再新开一个,或者显式 unset,才是干净的起点。


















