Configurar el servidor GIT con HTTP en Ubuntu

Configurar el servidor GIT con HTTP en Ubuntu
Si desea configurar un servidor GIT HTTP para trabajar con repositorios Git en privado, entonces este artículo es para usted. En este artículo, le mostraré cómo configurar un servidor HTTP Smart HTTP Git en Ubuntu con Apache HTTP Server. Entonces empecemos.

Instalación del servidor Git y Apache HTTP:

Los paquetes Git y Apache están disponibles en el repositorio oficial de paquetes de Ubuntu. Por lo tanto, puede instalarlo fácilmente con el Administrador de paquetes APT.

Primero, actualice el caché del repositorio del paquete APT con el siguiente comando:

$ sudo apt actualización

El caché del repositorio del paquete APT debe actualizarse.

Ahora, instale git y apache con el siguiente comando:

$ sudo apt install git apache2 apache2-utils

Ahora presiona Y y luego presiona Para confirmar la instalación.

Se deben instalar git y apache.

Configuración del servidor apache http para git:

Ahora, habilite Apache mod_env, mod_cgi, mod_alias y mod_rewrite Módulos con el siguiente comando:

$ sudo a2enmod env cgi alias reescritura

Los módulos Apache requeridos deben estar habilitados.

Ahora, crea un nuevo directorio /var/www/git Para mantener todos los repositorios GIT con el siguiente comando:

$ sudo mkdir/var/www/git

Ahora, cree una nueva configuración del sitio de Apache /etc/apache2/sites disponible/git.confusión Para GIT con el siguiente comando:

$ sudo nano/etc/apache2/sites disponible/git.confusión

Ahora, escriba las siguientes líneas en el archivo de configuración:


ServerAdmin webmaster@localhost
Setenv git_project_root /var/www/git
Setenv git_http_export_all
Scriptalias/git//usr/lib/git-core/git-http-backend/
Alias ​​/git /var /www /git

Opciones +ExecCGI -Multiviews +Symlinksifownermatch
Permitirse
Requiere todos otorgados

Documentroot/var/www/html

Índices de opciones SIGUSYSYMLINKS MULTIVIEWS
Permitirse
Requiere todos otorgados

ErrorLog $ apache_log_dir/error.registro
Advertencia de Loglevel
CustomLog $ apache_log_dir/access.registro combinado

El archivo de configuración final se ve de la siguiente manera. Ahora, guarde el archivo de configuración presionando + X seguido por Y y .

Ahora, deshabilite la configuración predeterminada del sitio Apache con el siguiente comando:

$ sudo a2dissite 000 default.confusión

La configuración de sitio predeterminada debe deshabilitarse.

Ahora, habilite la configuración del sitio GIT con el siguiente comando:

$ sudo a2ensite git.confusión

La configuración del sitio GIT debe estar habilitada.

Ahora, reinicie el servidor Apache HTTP con el siguiente comando:

$ sudo systemctl reiniciar apache2

Para arrancar un nuevo repositorio de git accesible a través del servidor Apache HTTP, deberá ejecutar algunos comandos. No quieres hacer lo mismo una y otra vez solo para crear un nuevo repositorio de git. Entonces, decidí escribir un script de shell para ese propósito.

Primero, cree un nuevo script de shell /USR/local/bin/git-create-repo.mierda Con el siguiente comando:

$ sudo nano/usr/local/bin/git-create-repo.mierda

Ahora, escriba las siguientes líneas de códigos en el script de shell.

#!/bin/bash
Git_dir = "/var/www/git"
Repo_name = $ 1
mkdir -p "$ git_dir/$ repo_name.git "
CD "$ git_dir/$ repo_name.git "
git init - -Bare &> /dev /null
toque git-daemon-export-ok
CP Hooks/Post-Update.Ganchos de muestra/post-actualización
git config http.Recibepack verdadero
Git Update-Server-Info
chown -rf www-data: www-data "$ git_dir/$ repo_name.git "
echo "Git Repository '$ Repo_name' creado en $ git_dir/$ repo_name.git "

Una vez que escribe estas líneas, el script de shell debe verse de la siguiente manera. Ahora, guarde el archivo presionando + X seguido por Y y .

Ahora, agregue el permiso de ejecución al script de shell con el siguiente comando:

$ sudo chmod +x/usr/local/bin/git-create-repo.mierda

Ahora, cree un nuevo repositorio de git prueba En la raíz del proyecto git /var/www/git utilizando el git-create-repo.mierda shell script de la siguiente manera:

$ sudo git-create-repo.prueba SH

El repositorio git prueba debe crearse.

Para acceder al repositorio Git, necesita la dirección IP del servidor GIT HTTP.

$ ip a

Como puede ver, la dirección IP en mi caso es 192.168.21.208. Será diferente para ti. Reemplácelo con el tuyo de ahora en adelante.

Ahora, puedes clonar el prueba Git Repository de la siguiente manera:

$ git clone http: // 192.168.21.208/git/prueba.git

El repositorio git prueba debe ser clonado.

Ahora, agregemos un nuevo compromiso con el prueba Repositorio de git.

Prueba de $ CD/
$ echo "Hello World"> Hola
$ git add .
$ git commit -m 'commit inicial'

Ahora, cargue los cambios en el prueba Repositorio Git en el servidor de la siguiente manera:

$ Git Push Origin

Como puede ver, los cambios se cargan bien.

Configuración de la autenticación del usuario:

En esta sección, le mostraré cómo configurar la autenticación del usuario en los repositorios GIT en el servidor.

Primero, edite el git.confusión Archivo de configuración del sitio de la siguiente manera:

$ sudo nano/etc/apache2/sites disponible/git.confusión

Ahora, agregue la siguiente sección en el archivo de configuración.


Authtype básico
AuthName "Git Verificación"
Authuserfile/etc/apache2/git.pasada
Requerir usuario válido

Aquí, /etc/apache2/git.pasada es el archivo de la base de datos de usuarios.

El archivo de configuración final debe verse de la siguiente manera. Ahora, guarde el archivo presionando + X seguido por Y y .

Ahora, cree un nuevo archivo de base de datos de usuarios /etc/apache2/git.pasada y agregue un nuevo usuario (digamos pala) al archivo de la base de datos de la siguiente manera:

$ sudo htpasswd -c/etc/apache2/git.PASSWD Shovon

Ahora, escriba una nueva contraseña para el nuevo usuario y presione .

Vuelva a escribir la misma contraseña y presione .

El par de pasas de usuario debe agregarse a la base de datos.

Ahora, reinicie el servidor Apache HTTP con el siguiente comando:

$ sudo systemctl reiniciar apache2

Ahora, si intentas clonar el prueba Repositorio nuevamente, se le pedirá que se autentique como puede ver en la captura de pantalla a continuación.

Una vez que se autentique utilizando el nombre de usuario y la contraseña, podrá acceder al repositorio de git.

Incluso cuando intente presionar o extraer del repositorio Git, también se le pedirá el nombre de usuario y la contraseña.

Una vez que se autentique, Push/Pull funcionará.

También puede establecer una base de datos de usuarios diferente para diferentes repositorios GIT. Esto podría ser útil para proyectos en los que muchas personas trabajan juntas en el mismo repositorio de GIT.

Para establecer la autenticación de repositorio de git, primero, edite el git.confusión Archivo de configuración del sitio de la siguiente manera:

$ sudo nano/etc/apache2/sites disponible/git.confusión

Ahora, agregue las siguientes líneas en el archivo de configuración.


Authtype básico
AuthName "Git Verificación"
Authuserfile/etc/apache2/git.prueba.pasada
Requerir usuario válido


Authtype básico
AuthName "Git Verificación"
Authuserfile/etc/apache2/git.test2.pasada
Requerir usuario válido

Para cada repositorio de git prueba y test2, a se define la sección. Se utiliza un archivo de base de datos de usuarios diferente para cada repositorio de git.

El archivo de configuración final debe verse de la siguiente manera. Ahora, guarde el archivo de configuración presionando + X seguido por Y y .

Ahora, puede crear las bases de datos de usuarios requeridas de la siguiente manera:

$ sudo htpasswd -c/etc/apache2/git.prueba.Nombre de usuario de PASSWD
$ sudo htpasswd -c/etc/apache2/git.test2.Nombre de usuario de PASSWD

Una vez que haya terminado, reinicie el servidor Apache HTTP con el siguiente comando:

$ sudo systemctl reiniciar apache2

Ahora, cada repositorio de git debe tener su propio conjunto de usuarios que puedan acceder a él.

Entonces, así es como configuras el servidor GIT con Apache HTTP Server en Ubuntu. Gracias por leer este artículo.