He estado siguiendo los pasos para Hospedar un servidor Git en Apache en Windows y conseguí que todo funcionara bien. Luego quise agregar una autenticación básica para las solicitudes push y, por lo tanto, hice cambios después de la solución dada a esta pregunta a mi httpd.conf
archivo y creé un usuario con una contraseña.
Pero cuando intento ingresar a mi repositorio (en localhost) obtengo un error 403. ¿Por qué podría ser esto?
La adición al final de mi httpd.conf
archivo está abajo.
# Local git repository setup
# Git repository information
SetEnv GIT_PROJECT_ROOT C:/Repositories
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAliasMatch \
"(?x)^/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | pack/pack-[0-9a-f]{40}.(pack|idx)) | git-(upload|receive)-pack))$" \
"C:/Program Files/git/libexec/git-core/git-http-backend.exe/$1"
# Allow cloning of repository without authentication
<Directory />
Require all granted
</Directory>
# Authentication
<LocationMatch "^/.*/git-receive-pack$">
Options +ExecCGI
AuthType Basic
AuthName "Git Login"
AuthUserFile "C:/wamp/bin/apache/apache2.4.9/passwords/git_passwords"
Require user alec
</LocationMatch>
Además, he visto preguntas como esta en SuperUser y StackOverflow. Si alguien pudiera decirme en qué sitio es más adecuado, sería genial.
Editar
Comprobar el registro de errores de Apache revela este error
AH01215: Service not enabled: 'receive-pack'
Solución con un nuevo problema
Agregar SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
me permite pasar al repositorio pero nunca me piden una contraseña ...
fuente
git-upload-pack
lugar de,git-receive-pack
pero aún recibo el mismo error. He agregado el registro de errores de apache, ¿eso lo explica?Finalmente las cosas funcionaron (aunque no estoy completamente seguro de cómo). Los cambios en mi
httpd.conf
archivo están al final así:Parece que una línea clave fue
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
fuente