composer 2.2+ 版本需用 repositories.packagist.org 键名,旧版 repo.packagist 在新版中会被静默忽略;项目级 composer.json 中的 repositories 字段会覆盖全局配置,且必须清缓存、确保 url 以 / 结尾并显式声明 type。

composer config -g repo.packagist 命令为什么没生效
不是命令写错了,而是 Composer 版本和配置键名不匹配。Composer 1.x 认 repo.packagist,2.2+ 更推荐用 repositories.packagist.org;旧键名在部分新版中会被静默忽略。
常见干扰项包括:
- 项目根目录
composer.json里有repositories字段 —— 它优先级高于全局配置,会直接覆盖 - Windows 下用 Git Bash 但
COMPOSER_HOME未生效,实际读的是%APPDATA%\Composer\config.json,不是~/.composer/config.json - 执行完没清缓存:
composer clear-cache必须补上,否则元数据仍从旧源加载 - 手抖漏掉
-g,只改了当前项目,却误以为全局已切
阿里云、腾讯云、华为云镜像地址怎么写才不报错
所有国内镜像 URL 必须以 / 结尾,否则 Composer 2.5+ 会拼出错误路径,比如把 https://mirrors.aliyun.com/composer/ 错拼成 https://mirrors.aliyun.com/composerpackages.json,直接 404 或报 Invalid repository type。
正确写法(注意末尾斜杠 + composer 类型标识):
- 阿里云:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 腾讯云:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 华为云:
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/
别用 http:// 开头 —— Composer 2.x 默认禁用非 HTTPS 源;也别加 /packages.json 后缀,那是 Composer 自己拼的。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
临时换源调试,不改任何配置的三种方式
有些场景你根本不想动配置,比如 CI 脚本、帮同事验证、或只跑一次 create-project。这时候硬写进全局或项目配置反而容易污染环境。
- 单次命令指定源:
composer create-project laravel/laravel myapp -r https://mirrors.aliyun.com/composer/(注意参数是-r,不是--repository-url) - 仅当前项目生效(不写进
composer.json):composer config repo.packagist composer https://mirrors.ustc.edu.cn/composer/(去掉-g) - 调试真实请求地址:
composer update -vvv --repository=https://mirrors.cloud.tencent.com/composer/,日志第一行会显示实际下载 URL,一眼确认是否走对了源
换源后 composer install 还是慢或报 hash 不匹配
最常被忽略的是 composer.lock 文件:它硬编码了每个包的下载地址和校验 hash。哪怕你已经切好镜像,旧 lock 文件仍会试图从 packagist.org 下载,导致超时或 hash 验证失败。
安全做法是:
- 删掉
vendor/和composer.lock - 确保
composer config -g repo.packagist输出是你设的镜像地址 - 再执行
composer install
另外注意:某些公司内网策略会拦截非 443 域名,而 mirrors.aliyun.com 是通的,但如果你误配成 https://php.cnpkg.or 这类拼错域名,也会卡住不动。










