Gitolite 502 beim Versuch, ein beliebiges Repo über http zu klonen/abzurufen

Gitolite 502 beim Versuch, ein beliebiges Repo über http zu klonen/abzurufen

Ich versuche, Gitolite so zu konfigurieren, dass es mit Gitweb auf Nginx funktioniert. Und obwohl Gitweb einwandfrei funktioniert und alle von Gitolite bereitgestellten Zugriffskontrollfunktionen erkennt, kann ich anscheinend nicht über http auf die Repos selbst zugreifen. Wenn ich beispielsweise versuche, ein Repo abzurufen, erhalte ich:

user@hostname:$ git fetch origin master Username for 'http://git.<hostname>': <Username> Password for 'http://<Username>@git.<hostname>': remote: An error occurred while reading CGI reply (no response received) fatal: unable to access 'http://git.<hostname>/git/<reponame>.git/': The requested URL returned error: 502

Meine aktuelle Nginx-Konfiguration sieht folgendermaßen aus:

server {
    listen 127.0.0.1:80;

    server_name git.<hostname>;
    root /usr/share/gitweb;

    # Basic Authentication
    auth_basic "Private Git Server";
    auth_basic_user_file /srv/etc/.htpasswd;

    location ~ /git(/.*) {
    root /srv/git/;

    client_max_body_size 0;

    # fcgiwrap is set up to listen on this host:port
    include       fastcgi_params;
    fastcgi_param SCRIPT_FILENAME    /srv/git/gitolite-source/src/gitolite-shell;

    # export all repositories under GIT_PROJECT_ROOT
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT    /srv/http/repositories;
    fastcgi_param GITOLITE_HTTP_HOME /srv/git;
    fastcgi_param PATH_INFO           $1;
    fastcgi_pass    unix:/var/run/fcgiwrap.sock;
    }

    try_files $uri @gitweb;
    location @gitweb {
    fastcgi_pass unix:/var/run/fcgiwrap.sock;
    fastcgi_param SCRIPT_FILENAME   /usr/share/gitweb/gitweb.cgi;
    fastcgi_param PATH_INFO         $uri;
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param GITWEB_CONFIG     /srv/git/gitweb/gitweb.conf;
    include fastcgi_params;
    }
}

Gitolite ist in /srv/git installiert und alle Repositories (zusammen mit Gitolite-Konfigurationsdateien usw.) sind in /srv/http gespeichert (Gitolite wird als HTTP-Benutzer ausgeführt). Ich vermute, dass es sich um ein Konfigurationsproblem handelt. Was muss ich tun, um es mit meinem aktuellen Setup möglich zu machen, Git über HTTP zu betreiben? Ich verwende übrigens Arch

Antwort1

Nun, die Lösung war nur einen Schritt entfernt.GITOLITE_HTTP_HOMEParameter muss nur auf/srv/http;anstatt/srv/git;.Und das ist es. Sowohl gitweb als auch git funktionieren perfekt und respektieren die in gitolite.conf festgelegten Berechtigungen.

verwandte Informationen