必须更换国内镜像源,因默认 packagist.org 在国内不可用;正确配置需满足:repo.packagist(单数小写)、type 字段不可省略、url 以 https:// 开头且结尾带 /;验证须输出完整 json;全局配置按用户隔离,宝塔/ci 需对应用户配置或使用 --repository-url;项目级配置应确保 repositories 为对象而非数组;换源后必须删除 vendor/ 和 composer.lock 才生效。

不配国内镜像,composer install 卡在 Loading composer repositories 是常态,不是你网络差,是默认直连 packagist.org 在国内基本不可用——DNS 慢、TLS 握手卡、首字节延迟高,且元数据请求失败率极高。换镜像是必须动作,不是可选项。
composer config -g repo.packagist 为什么总没反应
它不报错,但也不生效,90% 的失败都卡在这三个硬性条件上:
-
repo.packagist必须是单数、全小写;写成repos.packagist或repositories.packagist,Composer 完全忽略,静默 fallback 到官方源 - 中间那个
composer是type值,不是注释或可选参数;漏掉就等同于没配,直接走https://packagist.org -
url必须以https://开头,且末尾带/;少斜杠会拼出/composerpackages.json导致 404,然后退回到官方源
验证是否成功?只看这一行:composer config -g repo.packagist。输出必须是完整 JSON,例如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null、或只返回字符串,说明根本没写进去。
宝塔、CI、Docker 里镜像失效,其实是用户搞错了
全局配置(-g)是按用户隔离的,不是系统级。你在终端用 root 配了,但宝塔「一键部署」跑的是 www 用户,它读的是 /home/www/.composer/config.json,根本看不到你的配置。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查实际执行用户:看宝塔任务日志里的 UID,或运行
sudo -u www whoami - 给对应用户重配:
sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - CI 脚本别依赖全局配置,改用临时参数更稳:
composer install --repository-url=https://mirrors.aliyun.com/composer/
项目级配置比全局更可靠,但要注意 repositories 格式
进项目根目录运行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/(去掉 -g),它会自动往 composer.json 的 repositories 字段安全追加,key 固定为 "packagist",不会覆盖已有私有源——前提是原 repositories 是对象 {},不是数组 []。
- 如果原
repositories是数组(如"repositories": []),命令会报错;需先手动改成"repositories": {}再执行 - 千万别手写
"packagist.org": false—— 这会彻底关掉基础包校验,连php或ext-json都装不上 - 改完必须删掉
vendor/和composer.lock,否则composer install仍按旧 lock 文件里的 dist URL 去下载,完全不走新镜像
换源后还卡在 Resolving dependencies 或 Downloading?和镜像无关
镜像只加速包下载(Downloading 阶段)和元数据拉取(Loading repositories),不解决依赖解析慢的问题。
-
Resolving dependencies卡住几十秒?重点排查:"php": "^7.4 || ^8.0"这类宽泛约束、require-dev里未锁定版本的工具链、大量dev-分支依赖 -
Downloading卡住?先确认是否真走镜像:composer install -vvv看日志里域名是不是mirrors.aliyun.com;如果不是,说明缓存或 lock 文件残留,或配置根本没生效 - 镜像不是万能解药:含 Git 子模块、私有仓库、
require-dev里带 GitHub URL 的包,该慢还是慢,得单独处理
最常被忽略的一点:换源后不删 composer.lock,等于白配。lock 文件里记录的是旧源的哈希和 dist URL,Composer 会优先信任它,而不是你刚设的镜像。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










