镜像未生效的主因是配置命令错误或权限不足,正确命令为composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(含composer关键字且结尾带斜杠),执行后需用composer config -g repo.packagist验证输出是否为该完整url。

composer config -g repo.packagist 输出不是镜像地址
这说明镜像根本没配进去,后续所有操作都还在直连 packagist.org。常见原因是命令写错或权限不足。
- 别用
composer global config——这是无效命令,正确写法是composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意中间有composer关键字) - Windows 用户在 PowerShell 里执行失败,先运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,再换 CMD 执行 - 路径含中文或空格时,
%APPDATA%\Composer\config.json可能写入失败,手动打开该文件确认内容是否合法、是否有残留逗号或引号未闭合 - 执行后必须立刻验证:
composer config -g repo.packagist输出应为完整 URL,且末尾带斜杠;若为空或仍是https://packagist.org,说明没生效
curl -I https://mirrors.aliyun.com/composer/packages.json 返回 404
URL 格式错了。阿里云镜像要求路径结尾是 /composer/,不是 /composer 或 /composer/packages.json。
- 正确地址是:
https://mirrors.aliyun.com/composer/(注意结尾斜杠) - 华为云地址是:
https://mirrors.huaweicloud.com/repository/php/ - 清华源已停用旧地址
https://packagist.phpcomposer.com/,现为:https://mirrors.tuna.tsinghua.edu.cn/composer/ - 别用
http://测试——阿里云等镜像已强制 HTTPS,http会 301 跳转失败
composer diagnose 显示 OK,但 install 仍连不上
composer diagnose 不验证镜像连通性,只检查 PHP 和 cURL 基础能力。它通过 ≠ 安装能跑通。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 真实请求地址藏在详细日志里:运行
composer install -vvv --no-progress 2>&1 | head -n 20,第一行出现Downloading https://mirrors.aliyun.com/...才算真正走镜像 - 如果日志里还出现
packagist.org或repo.packagist.org,说明项目级composer.json里的repositories配置覆盖了全局设置,或 fallback 机制被触发 - 换源后不
composer clear-cache,旧缓存里的元数据仍指向境外地址,重试照样失败 - 某些企业网络走中间人代理,
curl -v https://mirrors.aliyun.com/composer/卡在* TLS handshake,可临时加环境变量CURL_IPRESOLVE=4强制 IPv4
报 Permission denied 写 vendor/autoload.php
这不是权限不够,是目录“认错了主人”。只要 vendor/、composer.lock 或 $(composer config --global cache-dir) 中任意一个属主为 root,普通用户就写不进去。
- 报错里带路径那一行就是线索:
file_put_contents(/path/to/vendor/autoload.php): Permission denied→ 直接ls -ld vendor/ - 只要输出第一列含
root,就执行:sudo chown -R $USER:$USER vendor/ composer.lock ~/.composer - 千万别
chmod 777—— Composer 会拒绝向过于宽松的目录写入 - 尤其注意 Docker 容器内挂载卷时,若宿主机用
sudo启动,容器内生成的vendor默认属主是root
实际问题往往卡在证书路径不一致、系统时间偏差超 5 分钟、或缓存没清这三处,它们不会直接报错,但会让整个流程静默失败。










