Git

Configurar el servidor Git con HTTP en Ubuntu

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

Instalación de Git y Apache HTTP Server:

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 la caché del repositorio de paquetes APT con el siguiente comando:

actualización de $ sudo apt

La caché del repositorio de paquetes APT debe actualizarse.

Ahora, instale Git y Apache con el siguiente comando:

$ sudo apt install git apache2 apache2-utils

Ahora presiona Y y luego presione para confirmar la instalación.

Se deben instalar Git y Apache.

Configuración del servidor HTTP Apache 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 reescribir

Los módulos de Apache necesarios deben estar habilitados.

Ahora, crea un nuevo directorio / var / www / git para mantener todos los repositorios de Git con el siguiente comando:

$ sudo mkdir / var / www / git

Ahora, cree una nueva configuración de sitio Apache / etc / apache2 / sites-available / git.conf para Git con el siguiente comando:

$ sudo nano / etc / apache2 / sites-available / git.conf

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
AllowOverride Ninguno
Requerir todo concedido

 
DocumentRoot / var / www / html
 

Opciones Índices FollowSymLinks MultiViews
AllowOverride Ninguno
Requerir todo concedido

 
 
ErrorLog $ APACHE_LOG_DIR / error.Iniciar sesión
LogLevel advertir
CustomLog $ APACHE_LOG_DIR / acceso.registro combinado

El archivo de configuración final tiene el siguiente aspecto. 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.conf

La configuración predeterminada del sitio debe estar deshabilitada.

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

$ sudo a2ensite git.conf

La configuración del sitio de Git debe estar habilitada.

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

$ sudo systemctl reiniciar apache2

Para arrancar un nuevo repositorio de Git accesible a través del servidor HTTP Apache, tendrá que ejecutar algunos comandos. No desea 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.sh con el siguiente comando:

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

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-actualización.ganchos de muestra / post-actualización
git config http.recibir paquete verdadero
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "El repositorio de Git '$ REPO_NAME' creado en $ GIT_DIR / $ REPO_NAME.git "

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

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

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

Ahora, crea un nuevo repositorio de Git prueba en la raíz del proyecto Git / var / www / git utilizando la git-create-repo.sh script de shell de la siguiente manera:

$ sudo git-create-repo.prueba de sh

El repositorio de Git prueba debe ser creado.

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

$ ip a

Como puede ver, la dirección IP en mi caso es 192.168.21.208. Será diferente para ti. Reemplázalo por el tuyo a partir de ahora.

Ahora puedes clonar el prueba Repositorio de Git de la siguiente manera:

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

El repositorio de Git prueba debe ser clonado.

Ahora, agreguemos una nueva confirmación al prueba Repositorio de Git.

$ cd prueba /
$ echo "Hola mundo"> hola
$ git agregar .
$ git commit -m 'compromiso inicial'

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

$ git push origin

Como puede ver, los cambios se cargan muy bien.

Configuración de la autenticación de usuario:

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

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

$ sudo nano / etc / apache2 / sites-available / git.conf

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


AuthType Basic
AuthName "Verificación de Git"
AuthUserFile / etc / apache2 / git.passwd
Requerir usuario válido

Aquí, / etc / apache2 / git.passwd es el archivo de la base de datos del usuario.

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

Ahora, cree un nuevo archivo de base de datos de usuario / etc / apache2 / git.passwd y agregue un nuevo usuario (digamos shovon) 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 usuario y contraseña debe agregarse a la base de datos.

Ahora, reinicie el servidor HTTP Apache 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 con el nombre de usuario y la contraseña, podrá acceder al repositorio de Git.

Incluso cuando intente presionar o extraer del repositorio de 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 configurar una base de datos de usuario diferente para diferentes repositorios de Git. Esto puede resultar útil para proyectos en los que muchas personas trabajan juntas en el mismo repositorio de Git.

Para configurar la autenticación basada en el repositorio de Git, primero, edite el git.conf archivo de configuración del sitio de la siguiente manera:

$ sudo nano / etc / apache2 / sites-available / git.conf

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


AuthType Basic
AuthName "Verificación de Git"
AuthUserFile / etc / apache2 / git.prueba.passwd
Requerir usuario válido

 

AuthType Basic
AuthName "Verificación de Git"
AuthUserFile / etc / apache2 / git.test2.passwd
Requerir usuario válido

Para cada repositorio de Git prueba y test2, a la sección está definida. Se utiliza un archivo de base de datos de usuario diferente para cada repositorio de Git.

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

Ahora, puede crear las bases de datos de usuario necesarias de la siguiente manera:

$ sudo htpasswd -c / etc / apache2 / git.prueba.passwd NOMBRE DE USUARIO
$ sudo htpasswd -c / etc / apache2 / git.test2.passwd NOMBRE DE USUARIO

Una vez que haya terminado, reinicie el servidor HTTP Apache 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 se configura Git Server con Apache HTTP Server en Ubuntu. Gracias por leer este artículo.

Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...