镜像配置只加速HTTP下载,不影响post-install-cmd等脚本执行超时;脚本超时由process-timeout控制,需与http.timeout同时调大(如600和60),二者独立作用于安装链路的不同阶段。

镜像配置不影响脚本执行超时
换源(比如设成 https://mirrors.aliyun.com/composer/)只加速 HTTP 下载环节,对 post-install-cmd 这类脚本的执行时间毫无作用。很多人配完镜像发现还是卡在 php artisan optimize 或 npm run build 上,误以为镜像没生效——其实那是另一个独立问题。
Composer 执行脚本走的是子进程(proc_open),受 process-timeout 控制,和镜像地址、HTTP 设置完全无关。哪怕你用腾讯云镜像 + --no-cache,脚本卡住照样报 PHP Fatal error: Maximum execution time of 30 seconds exceeded。
process-timeout 和 http.timeout 必须同时调大
安装链路分两段:先连镜像站拉 packages.json 和 ZIP 包(走 http.timeout),再解压、生成 autoload、跑 scripts(走 process-timeout)。只改一个,另一段仍会失败。
-
composer config -g process-timeout 600→ 控制脚本、解压、autoload dump 等耗时操作 -
composer config -g http.timeout 60→ 控制单次 HTTP 请求(如 GET/packages.json)等待上限 - 临时用
composer install --timeout=600只覆盖process-timeout,不改http.timeout
项目级镜像配置可能掩盖脚本超时问题
如果项目 composer.json 里写了 "repositories": [{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}],而全局又没设 process-timeout,那么 composer install 会优先用项目级镜像,但脚本超时仍走全局默认值 300 秒——容易误判为“镜像导致不稳定”。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
排查建议:
- 运行
composer config -g process-timeout和composer config process-timeout(无-g)分别确认两层配置 - 加
-vvv看日志末尾是否出现Executing command (CWD)—— 这行之后卡住,就是脚本执行阶段,和镜像无关 - 若确认是脚本慢,直接加
--no-scripts测试:如果跳过就秒装,说明问题纯在钩子里
镜像 URL 错误会导致脚本根本无法启动
看似是脚本超时,实则是镜像配置错到连元数据都拉不下来:repo.packagist 拼成 repos.packagist、URL 少了末尾 /、用了已下线地址(如 https://packagist.phpcomposer.com),都会让 Composer fallback 到官方源,然后卡在 TLS 握手或 DNS 解析上——此时还没走到执行脚本那步。
验证要点:
-
composer config -g repo.packagist输出必须是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} -
composer install -vvv日志里必须出现mirrors.aliyun.com,而不是packagist.org - 临时用
curl -I https://mirrors.aliyun.com/composer/packages.json确认镜像站可访问且返回200 OK

















