Composer在非交互式环境不读取全局镜像配置,需显式指定:①用--no-interaction设置镜像源;②用COMPOSER_REPO_PACKAGIST环境变量;③写入composer.json(不推荐)。务必加--no-interaction和--prefer-dist,推荐命令:composer install --no-interaction --prefer-dist --optimize-autoloader。

部署脚本里执行 composer install 为什么没走镜像?
因为 Composer 默认只在交互式终端中读取全局配置(比如 composer config -g repo.packagist 设置的镜像),而部署脚本通常是非交互式环境(如 CI/CD、ssh 执行、systemd service),此时它会忽略全局镜像,回退到官方源,导致超时或失败。
怎么让非交互式环境也用镜像?
必须显式指定镜像源,不能依赖全局配置。有三个可靠方式,按推荐顺序排列:
- 在部署脚本中运行
composer config --no-interaction repo.packagist composer https://mirrors.aliyun.com/composer/(注意--no-interaction是关键) - 直接在
composer install命令前设置环境变量:COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/ composer install --no-interaction - 把镜像写进项目级
composer.json的repositories字段(但不推荐:污染项目配置,且对 dev-only 包无效)
--no-interaction 和 --prefer-dist 要不要加?
要加,而且必须一起用。原因很实际:
-
--no-interaction防止卡在“是否确认使用该镜像”这类提示上(非交互环境会 hang 住) -
--prefer-dist强制走压缩包安装,比--prefer-source快得多,也更稳定(尤其在容器或无 git 环境) - 漏掉
--no-interaction可能导致部署卡死;漏掉--prefer-dist在某些服务器上会因缺 git 或权限问题 fallback 失败
完整命令示例:composer install --no-interaction --prefer-dist --optimize-autoloader
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
镜像地址选哪个?阿里云还是腾讯云?
看部署机器所在区域。国内服务器优先用 https://mirrors.aliyun.com/composer/;如果部署在腾讯云广州区,用 https://mirrors.cloud.tencent.com/composer/ 有时更快。别用 https://packagist.phpcomposer.com —— 已停用,会返回 404 或重定向到官方源。
验证是否生效:部署时加 -v 参数(如 composer install -v --no-interaction),观察日志里下载 URL 是否含镜像域名。一旦看到 Downloading https://mirrors.aliyun.com/... 就说明成功了。
最常被忽略的一点:有些部署脚本用 sudo 切换用户执行 composer,但镜像配置在原用户家目录下,sudo 后就失效了——这时候必须用环境变量或项目级配置,不能依赖 config -g。

















