换源是解决 composer install 卡在 loading package information 的刚需,推荐阿里云镜像(每15分钟同步、12.4 mb/s、免认证),全局配置命令为 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,之后必须执行 composer clear-cache。

Composer install 卡在 loading package information,不是你网络差,也不是配置写错了,大概率是默认源 https://packagist.org 在国内解析慢或连接超时——换镜像源是刚需,不是可选项。
为什么阿里云镜像是新手第一选择
对新手来说,稳定压倒一切。阿里云镜像同步频率为每15分钟一次,平均下载速度达 12.4 MB/s,且无需额外认证、不弹用户名密码提示(不像某些旧镜像会误触发 HTTP Basic Auth 弹窗)。官方源在国内实测响应常超 30 秒甚至直接 curl: (7) Failed to connect,而阿里云镜像基本秒回。
执行这条命令就能全局生效:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
之后务必清缓存,否则旧缓存可能继续拉取失败:
composer clear-cache
- 别用
packagist.phpcomposer.com:该域名已停服,输入后会卡在Authentication required (packagist.phpcomposer.com)并报Invalid credentials - 别手动改
composer.json里的repositories:新手容易写错格式,导致composer validate失败 - 全局配置后,所有新项目自动受益;老项目若已锁死依赖(有
composer.lock),换源后install仍能正常走完,无需重装
项目级镜像配置:团队协作时必须用这个
如果你在参与多人协作项目,或者想确保某项目始终走指定源(比如 CI 构建环境需复现本地行为),就得用项目级配置,避免和全局源冲突。
进入项目根目录,运行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
这条命令会在当前项目的 composer.json 中写入 repositories 字段,Git 提交后所有协作者都能一致生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 项目级配置优先级高于全局配置,但只影响本项目
- 如果项目里已有自定义
repositories(比如私有包源),新加的镜像配置要合并进去,不能简单覆盖 - 执行后检查
composer.json是否多出类似这段(注意缩进和逗号):
"repositories": {
"packagist": {
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
}
}
换源后 composer update 还卡住?先看这三点
镜像源换了,update 却还在卡,常见原因不是源的问题,而是本地状态干扰:
-
composer.lock文件残留旧包元数据:删掉它再跑composer update,强制重新解析依赖树 - 用了
--with-dependencies或--no-cache等参数:这些会绕过镜像加速逻辑,新手建议不用任何额外参数先跑通基础流程 - 项目里存在
git类型依赖(如"monolog/monolog": "dev-main#abc123"):这类包不走镜像,而是直连 GitHub/GitLab,此时卡顿和镜像无关,得单独优化 Git 配置或换 SSH 方式拉取
升级 Composer 本身不能走镜像,得单独处理
注意:composer self-update 永远走官方服务器,镜像源对它完全无效。国内升级常卡在 Downloading... 或报 cURL error 28: Operation timed out。
更稳的办法是手动下载覆盖:
php -r "copy('https://install.phpcomposer.com/composer.phar', 'composer.phar');"
然后确认当前 composer 命令指向哪个文件:
which composer
把刚下好的 composer.phar 覆盖到对应路径(比如 /usr/local/bin/composer),权限设为可执行即可。
真正容易被忽略的是:有些 Docker 构建中用 apk add php-composer 安装的 Composer 是系统包管理器提供的旧版,它根本不读 composer config 设置——这种场景下,必须在容器内用 php composer.phar 显式调用你配好镜像的版本。










