换源后仍连 packagist.org 是因项目级 repositories 优先级高于全局镜像;process-timeout 控制总命令耗时,http.timeout 仅管单次 HTTP 请求;卡在 Downloading 需用 --verbose 定位 URL 并手动测试;autoload 卡住多因 I/O 或 PHP 配置问题,非网络原因。

为什么换源后还在连 packagist.org?
不是镜像没生效,是 Composer 配置优先级被项目级 repositories 覆盖了。全局执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 只对“没声明仓库”的项目起作用。
常见踩坑点:
- 项目
composer.json里硬编码了"repositories": [{"type": "composer", "url": "https://packagist.org"}]—— 这会完全屏蔽全局镜像 - Laravel、Symfony 等框架脚手架自带的
repositories段落没删,导致优先走官方源 - 私有包配置写成了
"type": "package"或"vcs",这类源不走镜像代理,但又没配http-proxy,结果卡在 DNS 或连接阶段
验证方式:运行 composer config --list(项目目录下)和 composer config -g --list(全局),对比 repositories 输出,确认哪一级实际生效。
process-timeout 和 http.timeout 到底该设多少?
这两个参数管的事完全不同,混用等于白调。
process-timeout 控制整个 composer install/update 命令从启动到退出的总耗时(单位秒),默认 300。CI 场景建议设为 1200 或通过环境变量 COMPOSER_PROCESS_TIMEOUT=1200 显式传入——否则容器重启后丢失。
http.timeout 只管单次 HTTP 请求(比如下载 packages.json 元数据),默认 60,国内镜像响应慢时容易触发 curl: (28) Operation timed out。建议设为 300:
composer config -g http.timeout 300
注意:http.timeout 不影响 Git 克隆或 Executing command 阶段;那些得靠 git.clone-depth 或禁用并行来缓解。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
卡在 Downloading 却没报错,怎么定位?
现象是命令停住、光标不动、无任何输出,大概率是某一个包的 ZIP 下载卡死,而非整体超时。
实操排查步骤:
- 加
--verbose参数重跑:composer update --verbose,看最后卡在哪条 URL - 用
curl -I手动测那个 URL 是否可访问,例如curl -I https://mirrors.aliyun.com/composer/p2/myvendor/mypackage.json - 如果返回 429 或连接超时,说明镜像节点限流或网络策略拦截;换腾讯/华为镜像试试
- 若只是慢,临时加
--prefer-dist强制走 ZIP 包,避开 Git 克隆开销
别依赖 --timeout 命令行参数——它只对部分版本有效,且优先级低于配置文件,不如直接改 process-timeout 和 http.timeout。
autoload 生成阶段卡住,真是网络问题吗?
不是。卡在 Generating autoload files 后无响应,90% 是 I/O 或 PHP 配置问题,尤其在 WSL2、Docker for Mac 或 NTFS 挂载路径下。
典型诱因:
-
vendor/下存在大量 symlink(比如用composer link或 Lerna 类工具),PHP 递归扫描时陷入路径循环 - 启用了
apcu扩展但未设apc.enable_cli=1,导致 CLI 模式下 autoload 构建缓存失效,反复解析 - WSL2 默认对
/mnt/c/路径 I/O 性能极差,需在/etc/wsl.conf中启用metadata选项
快速验证:运行 composer install --no-autoloader,成功后再手动 composer dump-autoload --optimize。如果后者慢,问题就出在 autoload 生成环节,跟仓库配置无关。

















