3

我正在尝试使用 gitolite 设置一个 git 服务器。到目前为止,我的服务器正在使用 ssh,我并没有尝试在其之上添加 http 支持(最终目标是使用 LDAP 进行身份验证)

我已经关注 了http://sitaramc.github.com/gitolite/ssh-and-http.html how-to 文档。

我以为我已经完成了所有设置,所以我尝试了:

git clone http://myServer/testing

结果是:

Cloning into 'testing'... fatal: http://myServer/testing/info/refs not found: did you run git update-server-info on the server?

我尝试git update-server-info从实际的服务器测试存储库运行,结果仍然相同。

git-daemon-export-oktesting.git 存储库中有。

有人可以帮我解决这个问题吗?我不知道我应该从哪里开始..

附加信息:
我正在使用 Arch Linux(服务器端)

输出sudo suexec -V

-D AP_DOC_ROOT="/srv/http"
-D AP_GID_MIN=99
-D AP_HTTPD_USER="http"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=99
-D AP_USERDIR_SUFFIX="public_html"

下面是我的 /etc/httpd/conf/httpd.conf 中的 VirtualHost 部分

在下面的部分中,服务器名是我从hostname命令 中得到的

<VirtualHost *:80>  
    ServerName        servername  
    ServerAlias       servername
    ServerAdmin       admin@server.com

    DocumentRoot /srv/http/git  
    <Directory /srv/http/git>  
        Options       None  
        AllowOverride none  
        Order         allow,deny  
        Allow         from all  
    </Directory>  

    SuexecUserGroup git git
    ScriptAlias /git/ /srv/http/bin/gitolite-suexec-wrapper.sh/
    ScriptAlias /gitmob/ /srv/http/bin/gitolite-suexec-wrapper.sh/

    <Location /git>
        AuthType Basic
        AuthName "Git Access"
        Require valid-user
        AuthUserFile /etc/httpd/conf/extra/git.passwd
    </Location>       
</VirtualHost>

输出自ls -l /srv/http/

drwxr-xr-x 2 git  git  4096 Sep  6 22:02 bin
drwxr-xr-x 2 http http 4096 Sep  6 22:00 git

输出自ls -l /srv/http/bin/gitolite-suexec-wrapper.sh

-rwx------ 1 git git 196 Sep  6 22:02 /srv/http/bin/gitolite-suexec-wrapper.sh

的内容gitolite-suexec-wrapper.sh

#!/bin/bash
#
# Suexec wrapper for gitolite-shell
#

export GIT_PROJECT_ROOT="/home/git/repositories"
export GITOLITE_HTTP_HOME="/home/git"

exec ${GITOLITE_HTTP_HOME}/gitolite/src/gitolite-shell
4

2 回答 2

1

您的配置定义了一个别名 /git/ ,它将调用您的 gitolite 包装器。
这意味着它只会为地址调用它yourServer/git/...

你至少应该尝试你的克隆:

git clone http://myServer/git/testing

正如OP 提升者在此答案中引用的那样,唯一剩下的问题是基于文件登录的身份验证问题。

于 2012-09-07T04:11:27.713 回答
1

感谢 VonC 的指导,我现在已经解决了这个问题。

我试过git clone http://myServer/git/testing了,它给了我

Cloning into 'testing'...
Username for 'http://myServer': git
Password for 'http://git@myServer': 
fatal: Authentication failed

我查看了日志,发现我的 git.passwd 文件格式不正确(我忘记了上次是如何创建该文件的......)

我基本上不得不再次创建我的 git.passwd 文件:

htpasswd -c git.passwd git

现在它起作用了!再次感谢 VonC

于 2012-09-10T02:03:13.930 回答