不配镜像,composer create-project symfony/skeleton 十有八九卡在“Loading composer repositories”——因 packagist.org 国内不可达;必须全局配置 repo.packagist 键、type 为 composer、URL 含 HTTPS 及末尾斜杠,并执行 composer clear-cache 后再初始化。

直接结论:不配镜像,composer create-project symfony/skeleton 十有八九卡在 “Loading composer repositories” —— 不是网络差,是 packagist.org 在国内根本连不上。
全局镜像配置必须写对这三条,缺一不可
命令看似简单,但漏掉任意一个字符都会静默回退到官方源,且不报错:
-
repo.packagist是唯一合法键名(注意是repo单数,不是repos.packagist或packagist.org) - 必须显式传入
composer作为 type 值(不是可选参数,漏掉就失效) - URL 必须是 HTTPS 且末尾带斜杠:
https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(少斜杠会拼成 404 路径)
正确命令:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否生效:
composer config -g repo.packagist
输出应为 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 或至少是完整 URL 字符串;空、null、或仍是 https://packagist.org,说明没写进去。
项目初始化前必须清缓存,否则换源等于白配
Composer 会优先读本地缓存里的元数据(比如旧的 packages.json),哪怕镜像已切,它仍试图从海外源解析——结果就是卡在 DNS 或 TLS 握手,看起来“不动”。
执行:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer clear-cache
再跑初始化命令,才能真正走阿里云 CDN 下载。尤其当你之前试过失败的安装,缓存大概率已污染。
初始化命令要加关键参数,不然还是慢
Symfony 骨架依赖多、包体积大,光换镜像不够,还得控制下载行为:
-
--prefer-dist:强制下 ZIP 包,跳过 Git 克隆(对只有dev-main分支的包尤其关键) -
--no-dev:跳过require-dev中的工具链(PHPUnit、PHPStan 等),省 60%+ 时间和空间 -
-vvv:显示详细日志,确认是否真从mirrors.aliyun.com拉取(看到Downloading https://mirrors.aliyun.com/composer/...才算到位)
示例:
composer create-project symfony/skeleton my_project --prefer-dist --no-dev -vvv
为什么配了镜像还卡在 Resolving dependencies?和镜像无关
镜像只加速元数据拉取和 ZIP 下载,不参与依赖解析。如果你发现 composer update 卡在 Resolving dependencies 超过 10 秒,问题出在:
-
"php": "^7.4 || ^8.0 || ^8.1 || ^8.2"这类宽泛约束,让 Composer 尝试数百种组合 -
require-dev里堆了太多工具,比如phpunit+phpstan+psalm+friendsofphp/php-cs-fixer,版本冲突概率飙升 - 用了已废弃的
fxp/composer-asset-plugin(常见于老 Yii2 项目),它绕过 Composer 镜像机制,直连 Bower/NPM
这类问题换任何镜像都无解,得改 composer.json 或清理开发依赖。
最容易被忽略的是:项目级配置比全局更可靠。CI/CD 流水线、宝塔、Docker 容器常以 www 或 runner 用户运行,根本读不到你本地的 ~/.composer/config.json。真正健壮的做法,是在项目根目录执行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加 -g),然后 composer update --lock,让 composer.lock 明确记录镜像源地址。

















