开发PHP项目,免不了用composer。最近做一个项目,需要到公司内部开发的核心包,核心包放在内网搭建的gitlab仓库中,于是我用composer进行下载,报错:
Cloning into bare repository 'C:/Users/Administrator/AppData/Local/Composer/vcs/http---git.jybd.cn-composersdk-Jflame.git'...
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://git.jybd.cn/composersdk/Jflame.git/'
查了3680个文档,试了3681次,终于成功了。
一、需要在gitlab上配置个人访问令牌
登录gitlab,在 我的 -> 设置 -> 访问令牌,按照下发图片生成一个 Token
Token只显示一次,所以生成记得复制出来,下面会用到
二、在composer.json同级目录 创建 auth.json 认证信息
{
"bitbucket-oauth": {},
"github-oauth": {},
"gitlab-oauth": {
},
"gitlab-token": {
"你的仓库网址": "个人令牌token"
},
"http-basic": {},
"gitlab-domains":["你的仓库网址"]
}
替换你的仓库网址,如:www.gitlab.com
三、编辑composer.json
{
// ...省略其他部分
"repositories": [
{
"type": "gitlab",
"url": "仓库完整地址"
}
],
"require": {
// ...省略其他部分
"完整包名": "版本"
},
}
注意: repositories 下的 type 必须写:gitlab,仓库地址必须是 https 协议
至此,就已经完成了,快运行 composer install 或 composer update 试试吧。
其他问题
报错一:如果你的仓库没有配置https协议,需要在 composer.json 中 config 下加一下代码:
{
// ... 省略其他部分
"config": {
"secure-http": false
}
}
允许composer通过 HTTP 访问仓库。
报错二:The "https://git.jybd.cn:443/api/v4/projects/composersdk%2FJflame" file could not be downloaded (HTTP/2 404 ): {"message":"404 Project Not Found"}
发现在仓库地址中,自动加上了 api/v4/projects,如果你的支持 https 协议,需要将 secure-http 改为 true,或者直接删除该配置。
{
// ... 省略其他部分
"config": {
"secure-http": true
}
}
报错三: Your configuration does not allow connections to http://git.jybd.cn/api/v4/projects/composersdk%2FJflame. See https://getcomposer.org/doc/06-config.md#secure-http for details.
如果配置了 secure-http 为 true,仓库地址必须为 https 协议。