Windows下安装Symfony超时主因是Composer默认连接海外源packagist.org导致DNS慢、TLS卡、CDN绕行;应全局切换阿里云镜像、清缓存、加--prefer-dist--no-dev参数并调高process-timeout至600。

Windows 下安装 Symfony 总是超时,大概率不是你网速差,而是 Composer 默认连海外源 packagist.org —— DNS 解析慢、TLS 握手卡、CDN 路由绕行,三重问题叠加导致“假卡死”。换国内镜像源 + 清缓存 + 调参数,几秒就能拉完。
一、全局换阿里云镜像(最推荐)
在 PowerShell 或 CMD 中运行这行命令(注意大小写和斜杠):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
这条命令会写入 Windows 用户目录下的全局配置文件:
C:\Users\你的用户名\AppData\Roaming\Composer\config.json
验证是否生效:
composer config -g repo.packagist
输出应为完整 URL:
https://mirrors.aliyun.com/composer/
若显示 https://packagist.org 或为空,说明没成功,可能被旧配置覆盖,先执行:
composer config -g --unset repositories.packagist
二、必须清缓存,否则换源白换
换源后不清理缓存,Composer 仍会读取本地保存的海外元数据(比如 packages.json),结果还是卡在 DNS 或 TLS 阶段,看起来像“不动”。
立即执行:
composer clear-cache
完成后,再试安装命令,才能真正走阿里云 CDN 下载 ZIP 包。
三、安装时加关键提速参数
Symfony 依赖多、体积大,光换源还不够。以下参数组合对 create-project 和 install 都有效:
-
--prefer-dist:强制下载 ZIP 包,跳过 Git 克隆(尤其对只有
dev-main分支的包很关键) -
--no-dev:跳过
require-dev中的包(如 PHPUnit、PHPStan),节省 60%+ 时间和空间 -
-vvv:显示详细日志,可确认是否真的从
mirrors.aliyun.com拉取
示例命令:
composer create-project symfony/skeleton my_project --prefer-dist --no-dev -vvv
四、顺手调高超时阈值(防偶发抖动)
虽然换源后基本不超时,但网络波动时仍可能触发默认 300 秒限制。建议同步提升全局超时:
composer config -g process-timeout 600
注意:
- 不要设超过 7200(2 小时),否则 Composer 会自动回退到默认 300 秒;
- 这个值控制整个命令生命周期,不是单个请求超时。











