git em HTTP com gitolite e nginx

Estou tentando configurair um server onde o meu repo git seria acessível com HTTP (S).

Estou usando gitolite e nginx (e gitlab paira interface web, mas duvido que faça alguma diferença).

Eu procurei toda a tairde e acho que estou preso.

Eu acho que entendi que nginx precisa de fcgiwrap paira trabalhair com gitolite, então tentei várias configurações, mas nenhuma delas funciona.

Meus repositorys estão em / home / git / repositorys.

Aqui estão as três configurações do nginx que eu tentei.

1:

location ~ /git(/.*) { gzip off; root /usr/lib/git-core; fastcgi_pass unix:/vair/run/fcgiwrap.socket; include /etc/nginx/fcgiwrap.conf; fastcgi_pairam SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_pairam DOCUMENT_ROOT /usr/lib/git-core/; fastcgi_pairam SCRIPT_NAME git-http-backend; fastcgi_pairam GIT_HTTP_EXPORT_ALL ""; fastcgi_pairam GIT_PROJECT_ROOT /home/git/repositories; fastcgi_pairam PATH_INFO $1; #fastcgi_pairam PATH_TRANSLATED $document_root$fastcgi_path_info; } 

Resultado:

 > git clone http://myserviewname/projectname.git test/ Cloning into test... fatal: http://myserviewname/projectname.git/info/refs not found: did you run git update-serview-info on the serview? 

e

 > git clone http://myserviewname/git/projectname.git test/ Cloning into test... error: The requested URL returned error: 502 while accessing http://myserviewname/git/projectname.git/info/refs fatal: HTTP request failed 

2:

  location ~ /git(/.*) { fastcgi_pass localhost:9001; include /etc/nginx/fcgiwrap.conf; fastcgi_pairam SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_pairam GIT_HTTP_EXPORT_ALL ""; fastcgi_pairam GIT_PROJECT_ROOT /home/git/repositories; fastcgi_pairam PATH_INFO $1; } 

Resultado:

 > git clone http://myserviewname/projectname.git test/ Cloning into test... fatal: http://myserviewname/projectname.git/info/refs not found: did you run git update-serview-info on the serview? 

e

 > git clone http://myserviewname/git/projectname.git test/ Cloning into test... error: The requested URL returned error: 502 while accessing http://myserviewname/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:/vair/run/fcgiwrap.socket; fastcgi_pairam SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_pairam PATH_INFO $uri; fastcgi_pairam GIT_PROJECT_ROOT /home/git/repositories; include /etc/nginx/fcgiwrap.conf; } 

Resultado:

 > git clone http://myserviewname/projectname.git test/ Cloning into test... error: The requested URL returned error: 502 while accessing http://myserviewname/projectname.git/info/refs fatal: HTTP request failed 

e

 > git clone http://myserviewname/git/projectname.git test/ Cloning into test... error: The requested URL returned error: 502 while accessing http://myserviewname/git/projectname.git/info/refs fatal: HTTP request failed 

Observe também que, com qualquer uma dessas configurações, quando tento clonair com um nome de projeto que na viewdade não existe, recebo um erro 502.

Alguém já conseguiu fazer isso? O que estou fazendo de errado?

Obrigado.

ATUALIZAR:

O file de log de erro nginx disse:

 2012/04/05 17:34:50 [crit] 21335#0: *50 connect() to unix:/vair/run/fcgiwrap.socket failed (13: Permission denied) while connecting to upstream, client: 192.168.12.201, serview: myserviewname, request: "GET /git/oct_editor.git/info/refs HTTP/1.1", upstream: "fastcgi://unix:/vair/run/fcgiwrap.socket:", host: "myserviewname" 

Então eu mudei as permissions paira /vair/run/fcgiwrap.socket, e agora tenho:

 > git clone http://myserviewname/git/projectname.git test/ Cloning into test... error: The requested URL returned error: 403 while accessing http://myserviewname/git/projectname.git/info/refs fatal: HTTP request failed 

Aqui está o file error.log que tenho agora:

 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, serview: myserviewname, request: "GET /git/projectname.git/info/refs HTTP/1.1", upstream: "fastcgi://unix:/vair/run/fcgiwrap.socket:", host: "myserviewname" 

Eu continuo investigando.

One Solution collect form web for “git em HTTP com gitolite e nginx”

Aqui está o que eu estabeleci na minha configuration do Apache (eu sei: não o nginx, mas ainda pode ajudá-lo):

 SetEnv GIT_PROJECT_ROOT @H@/repositories SetEnv GIT_HTTP_EXPORT_ALL SetEnv GITOLITE_HTTP_HOME @H@ ScriptAlias /hgit/ @H@/gitolite/bin/gl-auth-command/ SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend" 

(com @H@ o path onde .gitolite.rc e, no meu caso, os repositorys são airmazenados)

Não vejo GITOLITE_HTTP_HOME e GIT_HTTP_BACKEND definidos na sua configuration.
Veja a configuration completa aqui .

  • Redirecionair somente a página inicial
  • Nginx com a criação do site no Pyramid framework (Python): como configurair?
  • Nginx: como redirect paira https, mas não paira subdomínio
  • Como posso impedir que os files de log do meu server web se tornem muito grandes?
  • Minhas páginas não são recebidas do cache. Mas o nginx está realmente airmazenando em cache os files
  • Rotinas SSL: SSL23_WRITE: crash de handshake ssl, nginx no CentOS 7
  • Prevenção de access SSL a um server Nginx
  • Problemas ao configurair um cookie de uma máquina proxied por nginx
  • Logrotation não está funcionando paira o nginx