问题标签 [git-http-backend]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
27222 浏览

git - 使用 git-http-backend.exe 在 Windows 上设置 Git 服务器

0 投票
2 回答
19714 浏览

git - git-http-后端

我尝试使用 git-http-backend 设置一个 git 服务器,一切都按我的意愿运行,但有一点小问题。

配置

这允许每个人都可以阅读 repos,但只有有效的用户可以编写。让我烦恼的是网址是http://git.server.com/git/repos。我想摆脱URL中的git ,例如http://git.server.com/repos。当我将配置更改为

认证失败。我仍然可以阅读存储库,但git push失败。我不明白为什么会这样。

有人可以帮我理解为什么后者会失败吗?我认为必须是 ScriptAlias 在身份验证期间启动。

编辑 1 apache 的日志记录并没有给我太多信息。只是身份验证由于某种原因失败。

access_log 说:

error_log 说:

0 投票
4 回答
12957 浏览

git - Apache 和 git-http-backend

我目前正在使用 Apache 2.4.7 的 Ubuntu LTS 14.04 机器上设置一些 git 存储库。

这是apache配置:

测试存储库位于/var/www/html/git/oswald.git. 在存储库中,我设置了配置属性

该文件git-daemon-export-ok存在。

如果我现在尝试克隆:

认证后我得到:

(git 2.1.0 客户端,在服务器 git 1.9.1 上)。

我尝试了几件事,所以如果我不使用 git-http-backend 并通过 WebDAV 我可以克隆但不能推送,使用 git-http-backend 我什至无法克隆。

ScriptAliasMatch如果我更改from的最后一行

git-http-backend 的手册页中所述,我得到

使用来自 Apache 的 error.log:

有人知道出了什么问题吗?我已经花了很多时间浏览论坛,但到目前为止没有任何建议有帮助。

0 投票
2 回答
38987 浏览

git - 如何通过 http 设置 git?

我需要使用 git-over-http(智能 http)设置 git 服务器,但是在线可用的资源很乱,混入了其他 apache 配置,缺少细节或不够明确。

我根据我发现可用资源中的不足来回答这个问题。

0 投票
1 回答
2467 浏览

git - 使用 apache 2.4 设置 git-http-backend

我试图使用 git-http-backend 和 apache 2.4 设置一个 git 服务器,我发现这个问题是关于同一件事的,这很有帮助,但我仍然到了我被卡住的地步。

我已经在 Ubuntu 16.04 上安装了 git 和 apache2 并使用添加了所需的模块

sudo a2enmod cgi alias env

然后在中添加以下代码段/etc/apache2/apache2.conf

请注意,这/var/www/git是我打算去的地方,并运行

find / -name git-http-backend节目/usr/lib/git-core/git-http-backend

接下来,/var/www/git/我在里面创建了一个目录myrepo.git并将其设置为:

接下来,我必须将目录的所有权更改为 apache2 所有者(我告诉过)。运行ps aux | egrep '(apache|httpd)'返回以下内容:

现在我不确定,因为它看起来两者rootwww-data在运行,但我目前决定将所有权设置为 www-data (也许它应该是 root?)。www-data的组也是www-data(我认为)

所以我用它来设置所有权:

我似乎还记得读过整个路径必须属于 apache 用户,所以我设置了好的衡量标准

现在从我的本地机器我试图克隆 myrepo:

我得到了错误:

谁能看到我做错了什么?

0 投票
1 回答
570 浏览

apache - Apache 上用于 gitolite 存储库的 GitSmartHTTP 不允许我推送

我正在设置一个 git-http-backend CGI 脚本来处理我的git.domain子域。该服务器位于 AWS 云上的 ELB(弹性负载均衡器)后面。我的服务器配置如下(我的 git 托管由 gitolite 处理):

我的 apache 服务器由www-data:www-data用户/组运行,gitolite 是使用git:git用户/组设置的。为了允许 apache 读取/写入存储库,我已经完成了:

PerlAccessHandler用户身份验证工作正常,因为我能够使用 redmine 设置中的一组有效凭据克隆我的存储库。

但是,当我尝试推动时;我在服务器日志中得到以下信息:

在客户端(在我在负载均衡器中设置的任何连接超时后出现以下内容,30 秒到 10 分钟):

通常,我还必须POST长度git-upload-pack为 0(对于具有相同提交的同一存储库的相同命令)

并在我的服务器错误日志中收到以下内容:

我什至为 git 用户玩过 setuid 和 setuid,希望它可以帮助我推送到存储库;但无济于事!

内部的 git 配置/opt/gitolite/repositories/xyz.git/


作为参考,我已经完成了以下各项:

  1. git-http-后端
  2. Apache 和 git-http-backend
  3. 如何通过 http 设置 git?
  4. 使用 apache 2.4 设置 git-http-backend
  5. 使用 git-http-backend.exe 在 Windows 上设置 Git 服务器

如何设置 Apache VHost 使其开始接受git push.

0 投票
0 回答
309 浏览

git - 如何对 git 服务器进行分片?

我有 N 个 git 存储库,我想在负载均衡器后面的 M 个 git 服务器上分片,但我不确定如何执行此操作。

例如,如果我在客户端 1

应该推送到服务器 A 和客户端 2

推送到服务器 B。

客户git remote -v端 1 上显示的位置

git remote -v在客户 2 节目中

通常,如果我对数据库进行分片,我会根据请求修改我的应用程序代码以指向不同的数据库,但在这种情况下,我没有任何应用程序代码或数据库。我只是使用 git 提供的git-http-backend,它使用本地文件系统。

有没有一种简单的方法可以将某些存储库路由到某些机器而不给每个存储库一个不同的子域?

0 投票
2 回答
943 浏览

git - 尝试使用 nginx 设置智能 http git 服务器:“请求的 URL 返回错误:502”

我正在尝试通过使用智能 http和 nginx 为 git repo 设置服务器。我遵循了https://stackoverflow.com/a/17553364上的答案。

虽然当我执行时git clone http://mydomian.de/git/test,它返回:

并且 nginx 错误日志打印两次:

我在 /srv/git/ 中放置了一个名为 test 的裸 git repo。

我安装了 git-core。

我认为 fcgiwrap 正在运行,因为sudo service fcgiwrap status返回:

这是我用于 nginx 的配置的相关部分:

在此先感谢您的帮助;)

0 投票
1 回答
263 浏览

nginx - NGINX 没有启动 git-http-server

我正在使用 git git-http-backend 脚本在 Nginx 后面的 Git 服务器上工作。

目前我有一个乘客服务器,它在端口 2222 上为 rails 应用程序提供服务。但是,在 /git/ 文件夹后面,我想为 git 存储库提供服务。问题是,Nginx 似乎没有启动脚本。无论我使用套接字文件还是不同的本地主机帖子,我都会收到 502 错误。这显示在 Nginx 错误日志中:

似乎 nginx 没有开始处理 git 文件的过程。

这是我在 nginx 设置中的位置部分:

我一个人无法弄清楚,有人可以分享他们的想法吗?

0 投票
1 回答
744 浏览

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

我有一个在线服务器(Ubuntu 17.04)来托管我的裸仓库。我试图在这台服务器上设置 HTTPS,我可以拉,但我不能推,它失败并出现以下错误:

错误:无法访问 URL https://user:passwd@myserver.com/REPO/,返回代码 22 致命:git-http-push failed 错误:无法将一些参考推送到' https://user:passwd@myserver/回购/ '

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

在我读到的所有线程中,问题来自远程 URL 中缺少用户/密码的 REMOTE_USER fastcgi 参数或本地 git 配置,但我设置了它,所以我一无所知。有没有人有想法或看到问题?

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