lando中composer未走国内镜像因全局配置仅对宿主机用户生效,容器内www-data用户无法读取;须进容器以www-data身份执行sudo -u www-data composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,或在composer.json中声明项目级镜像。

lando里执行composer命令时没走国内镜像?确认实际运行用户
Lando 默认以 www-data 用户运行 PHP 和 Composer,而你本地终端用自己账户执行的 composer config -g 是写进 /home/youruser/.composer/config.json 的,www-data 根本读不到。结果就是:你在宿主机配了,Lando 容器里还是直连 packagist.org,卡在 Loading composer repositories。
解决方法只有一条:进容器配,且指定用户:
- 先
lando ssh进入服务容器(通常是appserver) - 运行
whoami确认当前用户(多数是www-data) - 用该用户身份执行配置:
sudo -u www-data composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证:
sudo -u www-data composer config -g repo.packagist,输出应为完整 JSON 或对应 URL
lando.yml 里要不要写镜像配置?不推荐硬编码
Lando 的 lando.yml 本身不提供 Composer 镜像配置项,强行往 services.appserver.run_as_root 或 tooling 里塞 composer config 命令,容易因启动顺序、用户权限或多次重建导致重复写入、覆盖私有源。
更稳妥的做法是把镜像配置下沉到构建阶段:
- 在项目根目录加
.lando.yml的build_step或自定义 Dockerfile - 或者直接在
composer.json里声明项目级镜像(见下一条) - 避免在
tooling中写composer install类命令——它默认不继承你宿主机的全局配置
项目级配置写进 composer.json 最可靠
对 Lando 环境来说,项目级配置比全局配置更可控,因为每次 lando rebuild 或新环境拉起,都会重新读取 composer.json,不会依赖容器内某个用户的家目录。
编辑项目根目录下的 composer.json,确保 repositories 字段是合法 JSON 数组格式:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
"repositories": [
{
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
}
]
注意这几点:
- 外层必须是方括号
[],不是花括号{} -
url值必须用双引号包裹,末尾带斜杠/ - 别写
"packagist": false——这会禁用基础平台包校验,composer install直接失败 - 已有其他私有源?用
composer config repo.packagist composer https://...(不加-g)让 Composer 自动合并,不破坏原有结构
验证镜像是否真生效?看 -vvv 日志里的请求域名
配完别急着跑 lando composer install,先加 -vvv 看底层请求发到了哪儿:
lando composer install -vvv 2>&1 | grep "GET https"
如果看到类似 GET https://mirrors.aliyun.com/composer/packages.json,说明走对了;如果还是 packagist.org,说明配置没落进实际执行用户或 JSON 格式出错。
另外两个关键检查点:
- 删掉
vendor和composer.lock后重试——旧 lock 文件可能缓存了官方源的包哈希 - 执行
lando composer diagnose,重点看Repo packagist行是否显示你的镜像地址
镜像配置不是一劳永逸的事,Lando 每次重建容器都相当于新环境,靠项目级配置 + 容器内用户级配置双保险,才能避开“明明配了却没用”的坑。










