Gitolite服务器端设置HTTP和SSH(Gitolite server-side setup

2019-06-27 21:10发布

我试图建立使用gitolite Git服务器。 到目前为止,我有服务器与SSH的工作,我并不想在它的上面添加http支持(最终目标是使用LDAP认证)

我已经按照http://sitaramc.github.com/gitolite/ssh-and-http.html方法文档。

我原本以为这一切建立,所以我尝试:

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-ok的testing.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中部分虚拟主机

在下面的部分,服务器名是我从获得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

Answer 1:

你的配置定义了一个别名/ git的/这将打电话给你gitolite包装。
这意味着它会调用它只能像地址yourServer/git/...

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

git clone http://myServer/git/testing

由于OP hoistyler在引用这个答案 ,唯一剩下的问题是基于一个基于文件的登录认证之一。



Answer 2:

感谢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



文章来源: Gitolite server-side setup for both http and ssh