No se puede insert un directory en smart-http

He estado yendo por esto durante dos días seguidos, y estoy renunciando a encontrar la solución por mi count. Estoy intentando configurar Redmine en un server, esa parte salió bien. También estoy intentando instalar un repository de git, pero aunque he podido clonar y extraer perfectamente a través de SSH, estoy teniendo problemas para hacer lo mismo a través de HTTP.

En primer lugar, aquí está el error de inserción de git detallado:

=============================================== ==============

$ GIT_CURL_VERBOSE = 1 git push http://192.168.0.13/gitweb/Project master * No se pudo encontrar el host 192.168.0.13 en el file _netrc; utilizando los valores pnetworkingeterminados * Acerca de para conectar () a 192.168.0.13 puerto 80 (# 0) * ¡Intentando 192.168.0.13 … * 0x20ab4f0 está en la cabeza de la tubería de envío! * Conectado a 192.168.0.13 (192.168.0.13) puerto 80 (# 0)

GET / gitweb / Proyecto / info / refs? Service = package-recibir HTTP / 1.1 User-Agent: git / 1.7.4.3282.g844cb Host: 192.168.0.13 Aceptar: / Pragma: no-cache

  • La URL solicitada arrojó el error: 403
  • Vencimiento despejado
  • Cierre de connection # 0
  • No se pudo encontrar el host 192.168.0.13 en el file _netrc; usando valores pnetworkingeterminados
  • Acerca de connect () a 192.168.0.13 puerto 80 (# 0)
  • ¡Intentando 192.168.0.13 … * 0x20ab4f0 está en la cabeza de la tubería de envío!
  • Conectado a 192.168.0.13 (192.168.0.13) puerto 80 (# 0)

    GET / gitweb / Project / info / refs HTTP / 1.1 User-Agent: git / 1.7.4.3282.g844cb Host: 192.168.0.13 Aceptar: / Pragma: no-cache

  • La URL solicitada arrojó el error: 403

  • Error de connection # 0 de cierre: el URL solicitado arrojó el error: 403 mientras se accede a http://192.168.0.13 / gitweb / Project / info / refs

fatal: la request HTTP falló

=============================================== ==============

Así que obviamente hay algunos derechos mal configurados, aunque he modificado temporalmente mi carpeta de repository a 777.

Creo que también estarás interesado en la configuration de Apache:

=============================================== ==============

ServerAdmin webmaster @ localhost

[...snip...] PerlLoadModule Apache::Redmine SetEnv GIT_PROJECT_ROOT /var/cache/git/ SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ /usr/lib/git-core/git-http-backend/ <Location "/git/"> DAV on AuthType Basic AuthName "Git Repository" Require valid-user PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=networkingmine;host=localhost" RedmineDbUser "networkingmine" RedmineDbPass "XXXXXXX" RedmineGitSmartHttp yes </Location> Alias /gitweb/ "/var/cache/git/public/" <Location "/gitweb/"> Order deny,allow Deny from all <Limit GET PROPFIND OPTIONS REPORT> Options Indexes FollowSymLinks MultiViews Allow from 127.0.0.1 Allow from localhost </Limit> </Location> 

=============================================== ==============

Entonces, si alguien fuera tan amable de darme una pista sobre qué hacer, estaría realmente agradecido. ¡Gracias por adelantado!

De acuerdo, problema resuelto 🙂 Este es el tutorial a seguir al pie de la letra:

http://www.networkingmine.org/projects/networkingmine/wiki/HowTo_configure_Redmine_for_advanced_git_integration

En mi caso, la input final se ve así:

 PerlLoadModule Apache::Redmine Alias /git/ "/var/cache/git/public/" <Directory "/git/"> Options None AllowOverride None Order allow,deny Allow from all </Directory> <Location "/git/"> DAV on AuthType Basic AuthName "My Git Repository" Require valid-user PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=networkingmine;host=localhost" RedmineDbUser "networkingmine" RedmineDbPass "XXXXXXX" RedmineGitSmartHttp yes </Location> 

Parece que no estás usando ninguna authentication. De forma pnetworkingeterminada, git solo permite presionar a través de smart-http cuando se utiliza la authentication.

Debería poder añadir un nombre de usuario a la url que está utilizando y le pedirá una contraseña, o puede establecer el nombre de usuario y la contraseña en el file _netrc.