云虚拟主机必须用项目级配置换源,运行composer config repo.packagist composer https://mirrors.aliyun.com/composer/修改composer.json;需删vendor、composer.lock,执行clear-cache和install --no-cache。

云虚拟主机上不能用 composer config -g
绝大多数云虚拟主机(如阿里云轻量应用服务器、腾讯云CVM默认面板、宝塔Linux面板的普通用户环境)不提供全局 Composer 配置写入权限,~/.composer/config.json 路径要么不可写,要么根本不存在。执行 composer config -g repo.packagist ... 会静默失败或报错 Permission denied,但你可能没注意到——它不会提示“配置未生效”,而是继续走默认源。
验证方式很简单:运行 composer config -g repo.packagist,如果返回空、null 或 Key not found,说明全局配置压根没落盘,别再试了。
- 不要尝试用
sudo composer config -g—— 虚拟主机通常禁用sudo,且即使成功,也只对 root 生效,PHP 进程跑的是 www 用户 - 不要手动创建
~/.composer目录并 chown —— 多数虚拟主机限制家目录写权限,且重启后可能被清理 - 别信“改系统级 config.json”这种说法——云虚拟主机没有系统级 Composer 配置,只有用户级
必须用项目级配置,且写法要严格
唯一可靠的方式是进项目根目录(即含 composer.json 的目录),运行不带 -g 的命令:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
这条命令会直接修改当前项目的 composer.json,在顶层插入 "repositories" 字段。注意三个硬性点:
-
repo.packagist是键名,不能写成repos.packagist(多一个 s 就失效) -
composer是 type 值,不是注释,必须显式写出 - URL 必须以
https://开头,且末尾带/,比如https://mirrors.aliyun.com/composer/✅,少斜杠会 404
如果项目已有 "repositories": {}(空对象),命令能安全追加;但若已是 "repositories": [](数组),会报错,需先手动改成对象结构。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
换源后仍卡住?清缓存 + 删锁文件是必做动作
云虚拟主机上,Composer 缓存常驻在 ~/.composer/cache,但该路径往往不可写或被隔离。更稳妥的做法是绕过缓存,强制重拉:
- 先删掉项目下的
vendor和composer.lock - 再执行
composer clear-cache(即使提示“cache cleared”,也要做) - 最后运行
composer install --no-cache,避免读取任何本地缓存元数据
镜像只加速下载,不解决旧 composer.lock 里记录的 packagist.org 地址残留问题。不删 lock 文件,Composer 仍会尝试从旧地址解析包信息,导致卡在 Loading composer repositories。
华为云/腾讯云镜像地址容易写错
不同镜像站路径差异极小,但错一个字符就 404:
- 阿里云:
https://mirrors.aliyun.com/composer/ - 腾讯云:
https://mirrors.cloud.tencent.com/composer/ - 华为云:
https://mirrors.huaweicloud.com/repository/php/composer/(注意中间有/repository/php/)
华为云地址最容易漏掉 /repository/php/ 这一段,写成 https://mirrors.huaweicloud.com/composer/ 会直接返回 404。另外所有镜像都要求 HTTPS + 末尾斜杠,HTTP 协议在 Composer 2.0+ 中默认被拒绝。
复杂点在于:有些虚拟主机的 PHP 运行环境禁用了 allow_url_fopen 或 cURL TLS 版本太低,会导致即便地址全对,也连不上镜像站。这时得看错误信息里有没有 SSL: no alternative certificate subject name matches target host name 或 failed to open stream —— 那就不是配置问题,是底层网络策略限制了。

















