在无 SSH 权限主机上使用 Composer 的核心是强制通过 HTTPS 拉取依赖:配置 github-protocols 或 git url.insteadOf 重写 SSH 为 HTTPS,确保 composer.json 中仓库 URL 为 HTTPS,优先使用 --prefer-dist 安装 dist 包。

在没有 SSH 权限的主机上使用 Composer,核心思路是让 Composer 完全通过 HTTPS(或 HTTP)协议拉取依赖,避免触发 Git 的 SSH 协议(如 git@github.com:user/repo.git)。这通常涉及重写 Git URL、配置 Composer 行为、以及确保目标仓库支持 HTTPS 克隆。
Composer 默认会按 composer.json 中声明的 VCS URL(如 GitHub 的 SSH 地址)执行克隆。若你无法使用 SSH,需统一将其映射为 HTTPS 地址:
composer config --global github-protocols httpsgit config --global url."https://github.com/".insteadOf "git@github.com:"git@github.com:user/repo 的地址都会被自动转成 https://github.com/user/repo。git config --global url."https://gitlab.com/".insteadOf "git@gitlab.com:" 类推。如果你在 composer.json 中手动添加了 repositories(比如私有包),务必使用 HTTPS URL:
"url": "https://gitlab.example.com/mygroup/mypackage.git"
"url": "git@gitlab.example.com:mygroup/mypackage.git"
curl -I https://... 验证可访问。某些包可能含 Git 子模块,或 Composer 在安装时调用 git clone 命令——若底层仍走 SSH,会卡住。可临时禁用 SSH 检查(仅限可信环境):
export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null".gitmodules 显式声明 HTTPS 地址。Composer 默认优先尝试从源码(source)安装(即 Git 克隆),但若包在 Packagist 上已发布,它也会回退到预编译的 dist ZIP 包(通过 HTTPS 下载):
composer install --prefer-distcomposer.json 是否含 "prefer-stable": true 和未锁定 dev 分支——稳定版更大概率提供 dist。composer.json 中显式指定:"myvendor/mypackage": "^1.0"(不带 @dev 或 #branch 后缀)。基本上就这些。关键不是“不用 Git”,而是让 Git 走 HTTPS,或让 Composer 直接跳过 Git。操作不复杂但容易忽略全局 Git URL 重写和 --prefer-dist 这两个点。
以上就是如何在没有SSH权限的主机上使用Composer?(HTTP/HTTPS Git克隆)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号