composer http 超时默认60秒,易因网络问题触发curl错误28;应全局设为600秒:composer config -g http.timeout 600,或单次使用--http-timeout=600。

如何设置 HTTP 超时时间(http.timeout)
Composer 默认的 http.timeout 值约 60 秒,远低于 process-timeout,容易在 DNS 慢、TLS 握手卡顿或网络抖动时触发 curl error 28。这不是证书或代理问题,调高它最直接有效。
- 全局永久生效:
composer config -g http.timeout 600 - 单次命令覆盖:
composer update --http-timeout=600(注意是--http-timeout,不是--timeout) - 该配置写入
config.json的"http": {"timeout": 600}节点,不影响composer self-update - 若同时 DNS 解析慢,可追加
--dns-cache-ttl=3600减少重复查询
为什么必须同时配 http-proxy 和 https-proxy
Packagist、GitHub 等全量走 HTTPS,而 Composer 对代理是协议分离路由的:仅 http-proxy 只管 HTTP 请求,HTTPS 必须靠 https-proxy 建立 CONNECT 隧道。漏掉任一字段,HTTPS 请求就 fallback 直连,结果是卡在 Loading composer repositories 且无明确报错。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 两个字段都必须用
http://协议开头(哪怕代理本身监听 TLS 端口),例如:http://127.0.0.1:8080 - 密码含
@、/、:必须 URL 编码,如pa@ss/word→pa%40ss%2Fword - 务必加
-g(等价于--global),否则只写入当前项目composer.json,换目录即失效 - 验证是否生效:
composer config -g --list | grep -E "(http|https)-proxy",应输出两行且格式正确
如何正确配置国内镜像源(repo.packagist)
镜像配置极易静默失效——键名、type 值、URL 格式三者缺一不可。写错任意一处,Composer 都不报错,但完全无视该配置,仍走官方源。
- 唯一推荐写法:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ -
repo.packagist是固定键名,不能写成repos.packagist或repositories.packagist -
composer是强制 type 值,必须显式写出,不能省略 - URL 必须以
https://开头,且末尾带/,否则部分版本返回 404 或Invalid repository type - 验证配置是否写入成功:
composer config -g repo.packagist应输出完整 JSON:{"type":"composer","url":"https://mirrors.cloud.tencent.com/composer/"}
代理和镜像共存时,哪个优先级更高?
代理配置(http-proxy/https-proxy)和镜像源(repo.packagist)不冲突,但它们作用层不同:镜像改的是请求目标,代理改的是请求出口路径。两者可同时启用,但需注意顺序干扰。
- 如果项目根目录下存在
composer.json并定义了repositories字段,它会**完全覆盖**全局repo.packagist配置 - 执行
composer config repos.packagist(不加-g)可检查是否被项目级配置覆盖 - 使用
--repository参数(如composer create-project --repository=https://...)会**忽略所有已配置源**,包括项目级和全局,仅用于临时调试 - 缓存干扰常见:即使改了镜像,旧的
p2/索引可能仍被读取,建议配完立即运行composer clear-cache
https-proxy 的协议头写法、repo.packagist 的斜杠结尾、以及项目级 repositories 对全局镜像的覆盖,这三点最容易被跳过,却直接决定配置是否真正起效。










