Ich versuche, einen Server einzurichten, auf den mein Git-Repo mit HTTP (S) zugreifen kann.
Ich verwende Gitolite und Nginx (und Gitlab für das Webinterface, aber ich bezweifle, dass es einen Unterschied macht).
Ich habe den ganzen Nachmittag gesucht und glaube, ich stecke fest.
Ich glaube, ich habe verstanden, dass Nginx fcgiwrap benötigt, um mit Gitolite zu arbeiten, also habe ich verschiedene Konfigurationen ausprobiert, aber keine davon funktioniert.
Meine Repositories befinden sich unter / home / git / repositories.
Hier sind die drei Nginx-Konfigurationen, die ich ausprobiert habe.
1:
location ~ /git(/.*) {
gzip off;
root /usr/lib/git-core;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
include /etc/nginx/fcgiwrap.conf;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param DOCUMENT_ROOT /usr/lib/git-core/;
fastcgi_param SCRIPT_NAME git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /home/git/repositories;
fastcgi_param PATH_INFO $1;
#fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}
Ergebnis:
> git clone http://myservername/projectname.git test/
Cloning into test...
fatal: http://myservername/projectname.git/info/refs not found: did you run git update-server-info on the server?
und
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
2:
location ~ /git(/.*) {
fastcgi_pass localhost:9001;
include /etc/nginx/fcgiwrap.conf;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /home/git/repositories;
fastcgi_param PATH_INFO $1;
}
Ergebnis:
> git clone http://myservername/projectname.git test/
Cloning into test...
fatal: http://myservername/projectname.git/info/refs not found: did you run git update-server-info on the server?
und
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
3:
location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
root /home/git/repositories/;
}
location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ {
root /home/git/repositories;
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/repositories;
include /etc/nginx/fcgiwrap.conf;
}
Ergebnis:
> git clone http://myservername/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/projectname.git/info/refs
fatal: HTTP request failed
und
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 502 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
Beachten Sie auch, dass bei einer dieser Konfigurationen beim Versuch, mit einem Projektnamen zu klonen, der tatsächlich nicht vorhanden ist, ein 502-Fehler angezeigt wird.
Ist das schon jemandem gelungen? Was mache ich falsch?
Vielen Dank.
AKTUALISIEREN:
Nginx-Fehlerprotokolldatei sagte:
2012/04/05 17:34:50 [crit] 21335#0: *50 connect() to unix:/var/run/fcgiwrap.socket failed (13: Permission denied) while connecting to upstream, client: 192.168.12.201, server: myservername, request: "GET /git/oct_editor.git/info/refs HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "myservername"
Also habe ich die Berechtigungen für /var/run/fcgiwrap.socket geändert und jetzt habe ich:
> git clone http://myservername/git/projectname.git test/
Cloning into test...
error: The requested URL returned error: 403 while accessing http://myservername/git/projectname.git/info/refs
fatal: HTTP request failed
Hier ist die error.log-Datei, die ich jetzt habe:
2012/04/05 17:36:52 [error] 21335#0: *78 FastCGI sent in stderr: "Cannot chdir to script directory (/usr/lib/git-core/git/projectname.git/info)" while reading response header from upstream, client: 192.168.12.201, server: myservername, request: "GET /git/projectname.git/info/refs HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "myservername"
Ich recherchiere weiter.
/usr/lib/git-core/git/projectname.git/info
?Antworten:
Folgendes habe ich in meiner Apache-Konfiguration festgelegt (ich weiß: nicht nginx, kann Ihnen aber trotzdem helfen):
(mit
@H@
dem Pfad.gitolite.rc
, in dem und in meinem Fall die Repositorys gespeichert sind)Ich sehe
GITOLITE_HTTP_HOME
undGIT_HTTP_BACKEND
definiert nicht in Ihrer Konfiguration.Die vollständige Konfiguration finden Sie hier .
quelle