返回
一文搞定:Composer.json 中同时定义 HTTP 和 SSH VCS 定义
php
2024-03-09 06:41:18
使用 Composer.json 定义 HTTP 和 SSH VCS 定义
介绍
在 Composer 的包管理器中,灵活地访问代码源至关重要。通过同时定义 HTTP 和 SSH VCS 定义,你可以为同一个包提供多种访问途径。本文将指导你逐步了解在 Composer.json 中实现这一目标的方法。
HTTP 和 SSH VCS 定义
- HTTP VCS 定义: 使用非安全 SSL 连接,通常用于公开仓库。
- SSH VCS 定义: 使用 SSH 密钥进行安全连接,通常用于私有仓库。
在 Composer.json 中定义 VCS 定义
要同时定义 HTTP 和 SSH VCS 定义,请在 composer.json 文件的 "repositories" 部分中添加以下代码块:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/vendor/secret.git",
"insecure-ssl": true
},
{
"type": "vcs",
"url": "ssh://git@github.com/vendor/secret.git"
}
]
}
- 确保你的 SSH 密钥已配置好,并具有访问私有仓库的权限。
- 如果使用 HTTP 连接,请在 "insecure-ssl" 选项中指定 "true",以绕过 SSL 验证。
连接优先级
Composer 将优先尝试使用 SSH 连接。如果 SSH 连接失败,Composer 将尝试使用 HTTP 连接。
示例
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/vendor/secret.git",
"insecure-ssl": true
},
{
"type": "vcs",
"url": "ssh://git@github.com/vendor/secret.git"
}
],
"require": {
"vendor/package": "1.0.0"
}
}
当安装此包时,Composer 将首先尝试使用 SSH 连接到 "ssh://git@github.com/vendor/secret.git" 存储库。如果 SSH 连接失败,Composer 将使用 "https://github.com/vendor/secret.git" 存储库的 HTTP 连接。
结论
同时定义 HTTP 和 SSH VCS 定义可以为你的 Composer 项目提供灵活性和冗余性。通过遵循本文中的步骤,你可以轻松实现此功能。
常见问题解答
-
Q:我如何配置 SSH 密钥?
- A: 请参阅 SSH 官方文档以获取具体说明。
-
Q:为什么 Composer 无法连接到 SSH 存储库?
- A: 检查你的 SSH 密钥是否正确配置,并且你具有访问私有仓库的权限。
-
Q:我可以使用 Composer 定义多个 SSH VCS 定义吗?
- A: 是的,你可以通过添加多个 "vcs" 存储库定义来实现此目的。
-
Q:Composer 如何选择使用哪个 VCS 定义?
- A: Composer 将优先尝试使用 SSH 连接。如果 SSH 连接失败,Composer 将使用 HTTP 连接。
-
Q:如何禁用非安全 SSL 连接?
- A: 将 "insecure-ssl" 选项设置为 "false",或从 "repositories" 部分中删除 HTTP VCS 定义。