Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git http后端/nginx-推送时出现错误22_Git_Nginx_Git Http Backend - Fatal编程技术网

git http后端/nginx-推送时出现错误22

git http后端/nginx-推送时出现错误22,git,nginx,git-http-backend,Git,Nginx,Git Http Backend,我有一个在线服务器(Ubuntu17.04),它可以托管我的裸机。我试图在此服务器上设置HTTPS,我可以拉,但不能推,它失败,出现以下错误: 错误:无法访问URL, 返回代码22致命:git http推送失败错误:推送某些失败 “参考” nginx配置相关部分如下所示: # static repo files for cloning over https location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(

我有一个在线服务器(Ubuntu17.04),它可以托管我的裸机。我试图在此服务器上设置HTTPS,我可以拉,但不能推,它失败,出现以下错误:

错误:无法访问URL, 返回代码22致命:git http推送失败错误:推送某些失败 “参考”

nginx配置相关部分如下所示:

# static repo files for cloning over https
location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
    client_max_body_size 0;
    auth_basic  "Restricted Area";
    auth_basic_user_file /etc/apache2/.htpasswd;
    fastcgi_param REMOTE_USER $remote_user;
    root /home/git/;
}

# requests that need to go to git-http-backend
location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ {
    client_max_body_size 0;
    auth_basic  "Restricted Area";
    auth_basic_user_file /etc/apache2/.htpasswd;
    root /home/git/;

    #fastcgi_pass unix:/var/run/fcgiwrap.socket;
    fastcgi_param SCRIPT_FILENAME   /usr/lib/git-core/git-http-backend;
    fastcgi_param PATH_INFO         $uri;
    fastcgi_param GIT_PROJECT_ROOT  /home/git/;
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param REMOTE_USER $remote_user;
    include fastcgi_params;
}
在我读到的所有线程中,问题都来自远程用户fastcgi param或本地git config,它们在远程URL中缺少USER/passwd,但我设置了它,所以我不知道。有人有想法或看到问题吗

编辑:这是我的.git/config:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = https://user:passwd@myserver.com/REPO/
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[user]
    name = git

在不复制设置的情况下,您是否确定已根据正确的设置正确启用了
receivepack


如果您尝试更新本地
.git/config
URL,如(查看注释)

而不复制您的设置,您是否确定已正确启用
receivepack


如果您尝试更新您的本地
.git/config
URL,如(查看注释)

我已经更新了我的.git/config(查看错误,用户名在URL中),并且默认情况下,receivepack为已验证用户启用,为匿名用户禁用,这是我想要的,那么nginx fastcgi\u参数呢,它是否有可能覆盖以前定义的参数?我不确定当使用HTTP而不是SSH时,
git push-v
是否提供了有用的信息,但可以尝试一下。我将试着看看是否可以复制您的设置。另外,为了以防万一,您是否可以更新您的问题并添加您的repo
.git/config
?我编辑以添加我的.git/config。另外,fastcgi\u参数没有被覆盖,我复制的两个参数后面的唯一一个块是“location~\.php$”谢谢!我已经复制了你的设置,我不得不承认我有同样的问题,不管怎样。。。当增加错误日志级别nginx时,我在PROPFIND方法上收到一个405错误,这意味着请求可能没有传递到
git http backend
。。。仍在调查中…我已经更新了我的.git/config(查看错误,用户名在URL中),默认情况下,receivepack对经过身份验证的用户启用,对匿名用户禁用,这就是我想要的,nginx fastcgi_参数呢,它是否有可能覆盖以前定义的参数?我不确定当使用HTTP而不是SSH时,
git push-v
是否提供了有用的信息,但可以尝试一下。我将试着看看是否可以复制您的设置。另外,为了以防万一,您是否可以更新您的问题并添加您的repo
.git/config
?我编辑以添加我的.git/config。另外,fastcgi\u参数没有被覆盖,我复制的两个参数后面的唯一一个块是“location~\.php$”谢谢!我已经复制了你的设置,我不得不承认我有同样的问题,不管怎样。。。当增加错误日志级别nginx时,我在PROPFIND方法上收到一个405错误,这意味着请求可能没有传递到
git http backend
。。。仍在调查。。。