正确命令是composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,必须带-g、type为composer、url末尾带/,缺一即静默回退至packagist.org;执行后需composer clear-cache并删除vendor和composer.lock验证。

composer config -g repo.packagist 必须带完整参数
不加 -g、漏写 composer 类型、URL 末尾缺 /,三者任一出错都会静默回退到 https://packagist.org,且无任何报错提示。实际生效的命令只有一条:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/-
composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/(清华源同步稳定,但需确认未停服)
执行后必须验证输出:composer config -g repo.packagist 应返回完整 JSON,形如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null、或仅输出 URL 字符串,都代表失败。
脚本中必须搭配 clear-cache 和 vendor 清理
镜像切换后直接跑 composer install 很可能仍卡在元数据拉取——因为旧缓存里存着 packagist.org 的 packages.json 和 provider 列表,Composer 会优先读缓存再校验远程地址,根本不会发请求到新镜像。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 清缓存用
composer clear-cache(不是composer cache-clear,后者已废弃) - 已有
vendor/和composer.lock时,必须先rm -rf vendor/ composer.lock,否则 lock 文件里的 hash 值与镜像元数据不匹配,安装会失败或降级 - CI 脚本里建议加校验:运行
composer config -g repo.packagist | grep -q "mirrors.aliyun.com",不匹配则exit 1
CI/CD 中缓存 key 必须包含镜像标识
GitHub Actions 或 GitLab CI 复用 ~/.composer/cache 目录时,若不同 job 混用阿里云镜像和官方源,会导致 corrupted cache file 或安装中断——缓存内容与镜像源强绑定。
- 缓存 key 示例:
composer-${{ hashFiles('**/composer.lock') }}-aliyun - 不要只缓存
~/.composer/cache,Docker 构建中还需保证composer.json和composer.lock在COPY . .之前分层,否则 PHP 版本微调就会让缓存失效 - 避免
sudo composer config -g:它把配置写进 root 家目录,而 runner 用户读的是自己的~/.composer/config.json
生产部署推荐组合参数
composer install 卡顿常因并发低、下载方式冗余、autoload 生成拖慢。以下参数组合在 ThinkPHP/Laravel 等框架项目中实测可将耗时从分钟级压到秒级:
-
--prefer-dist:强制走 ZIP 包而非 git clone,避免 submodule 同步开销 -
--no-dev --no-scripts --no-autoloader:跳过 dev 依赖、post-install 脚本、autoload 生成,部署后再补composer dump-autoload -o -
--concurrency=10:设为 10(非 20),阿里云/腾讯云镜像支持 HTTP/2 多路复用,低配环境设太高反而触发file_put_contents(): failed to open stream
真正容易被忽略的是:Xdebug 必须关——它会让 Composer 解析慢 5 倍以上;路径含中文或空格(如 D:\我的项目\)会导致 autoload 失败,脚本里应提前检查并退出。










