新项目初始化前必须先配置镜像,否则 composer create-project 会绕过全局配置直连 packagist.org 导致下载卡顿或超时;正确做法是在空目录下直接执行带 --repository-url 参数的命令,并确保 composer.json 中 repositories 结构正确且含 "packagist.org": false。

新项目初始化前必须先配镜像
不配镜像就运行 composer create-project,它会绕过全局配置直连 packagist.org,首次下载 skeleton 包大概率卡在 Downloading 或直接超时。这不是网络问题,是命令设计如此——它只读 --repository-url 参数,不查 repo.packagist 全局设置。
- 正确做法:在空目录下直接执行带参数的命令,例如
composer create-project laravel/laravel myapp --repository-url=https://mirrors.aliyun.com/composer/ - 别先
composer init再配镜像,init生成的composer.json默认不含repositories,后续补配容易漏掉"packagist.org": false导致 fallback - 如果项目模板含 Git 子模块(如某些 Symfony starter),镜像只加速 PHP 包,Git 部分仍需单独处理(比如换国内 fork 或配代理)
项目级配置比全局更可靠
进项目根目录后,用 composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加 -g)写入 composer.json。这条命令会自动在 repositories 对象里追加 packagist 条目,不会清空你已有的私有源或 Satis 源。
- 若原
composer.json已有"repositories": [](数组格式),该命令会失败;需先手动改为"repositories": {}(空对象)再执行 - 写入后必须加
"packagist.org": false到composer.json根节点,否则 Composer 仍可能 fallback 到官方源 - 配置可提交到 Git,CI 流水线、宝塔、同事拉代码时行为一致,避免
sudo -u www composer config -g这类用户权限陷阱
验证镜像是否真生效
光看 composer install 跑完没报错没用。真正确认方式只有两个:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
composer require monolog/monolog -vvv 2>&1 | grep -i "mirrors\|download",输出 URL 必须含mirrors.aliyun.com或对应镜像域名 - 删掉
vendor/和composer.lock后重跑composer install,观察终端是否快速跳过Loading composer repositories并进入Installing dependencies - 若日志里反复出现
packagist.org或请求地址是https://packagist.org/p2/...,说明镜像没命中,立刻检查composer.json里repositories结构和"packagist.org": false是否存在
阿里云镜像 URL 的三个硬性要求
https://mirrors.aliyun.com/composer/ 这个地址必须严格满足三项条件,缺一就会静默失效:
- 协议必须是
https://,不能用http://(Composer 2.2+ 拒绝非 HTTPS 源) - 末尾必须带斜杠
/,写成https://mirrors.aliyun.com/composer会导致路径拼接错误,请求/packages.json时变成/composerpackages.json返回 404 - 键名必须是
repo.packagist(单数),写成repos.packagist或repository.packagist都会被忽略,且无任何提示
镜像只解决包下载慢的问题,如果卡在 Resolving dependencies,那是本地 PHP 解析依赖树的计算瓶颈,和镜像无关——这时候要收紧 require 版本约束、禁用 Xdebug、或调高 COMPOSER_MEMORY_LIMIT。










