composer 1.x 配置镜像需用 packagist.org 键名、url 必以/结尾、强制 https;需清理 composer.lock、allow-plugins 和 repos.packagist 等残留;asset-packagist.org 需单独配置;php 5.3–5.6 需禁用 secure-http。

Composer 1.x 项目不能用 composer config -g repo.packagist
这条命令在 Composer 1.x 中根本不存在——repo.packagist 是 2.2+ 引入的键名,1.x 只认 packagist.org(不带 repo. 前缀)。你执行它不会报错,但配置会被写进一个无效字段,后续所有操作仍走默认源。
正确做法是:进入项目根目录,运行
composer config -g packagist.org https://mirrors.aliyun.com/composer/
注意三点:
-
packagist.org是唯一兼容 1.x 的键名,拼错或加repo.前缀即失效 - URL 必须以
/结尾,否则请求路径变成.../composer/packages.json→ 404 - 1.x 不校验 HTTPS 证书,但阿里云镜像已强制 HTTPS,所以必须用
https://协议
降级到 Composer 1.10.22 后,镜像配置仍不生效?检查三处残留
即使你成功替换了 PHAR 文件,composer --version 显示 1.10.22,镜像也可能被静默忽略。原因不是配置错了,而是旧版本残留干扰了加载逻辑:
-
composer.lock文件里存着 2.x 生成的 dist URL(如https://api.github.com/...),1.x 无法解析,直接跳过镜像走回源 -
composer.json中若存在allow-plugins字段,1.x 会报Plugin installation failed并中断整个配置读取流程 -
~/.composer/config.json里若有repos.packagist(多一个s)这类 2.x 风格配置,1.x 会跳过整个repositories段落
必须手动清理:
rm composer.lock sed -i '/"allow-plugins"/d' composer.json sed -i '/"repos\.packagist"/d' ~/.composer/config.json
老项目用 fxp/composer-asset-plugin?镜像必须支持 asset-packagist.org
很多 PHP 5.6–7.2 的 Yii1 / Yii2 老项目依赖 fxp/composer-asset-plugin,它会额外请求 asset-packagist.org 获取前端资源。这个域名不在标准镜像覆盖范围内,阿里云、腾讯云默认都不代理。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
解决方案只有两个:
- 改用
composer-asset-plugin的替代方案(如fxp/asset-plugin的 fork 版本),并手动配置其镜像地址:composer config -g asset-packagist.org https://asset-packagist.mirrors.aliyun.com/(需确认该镜像真实存在且同步) - 彻底禁用 asset 插件,改用
bower-asset或npm-asset类型仓库,并在repositories中显式添加对应镜像源
注意:asset-packagist.org 的镜像不是所有服务商都提供,目前仅华为云镜像站明确支持该子域透传。
PHP 5.3–5.6 环境下,镜像 URL 的 TLS 版本兼容性要手动降级
阿里云、腾讯云镜像站已全面启用 TLS 1.2+,而 PHP 5.3–5.6 默认 OpenSSL 版本太旧,无法完成握手,现象是 curl error 35 或无限卡在 Loading package information。
绕过方法不是换镜像,而是降级 TLS 请求级别:
composer config -g secure-http false composer config -g http-basic.mirrors.aliyun.com user pass
但更稳妥的做法是,在项目根目录创建 .composer/config.json(优先级高于全局),内容为:
{
"config": {
"secure-http": false,
"http-basic": {
"mirrors.aliyun.com": {
"username": "",
"password": ""
}
}
}
}
这样避免污染全局配置,也防止 CI 环境因 secure-http: false 被审计拦截。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










