Git

Configurer Git Server avec HTTP sur Ubuntu

Configurer Git Server avec HTTP sur Ubuntu
Si vous souhaitez configurer un serveur HTTP Git pour travailler avec les référentiels Git en privé, cet article est pour vous.  Dans cet article, je vais vous montrer comment configurer un serveur HTTP Git Smart sur Ubuntu avec le serveur HTTP Apache. Alors, commençons.

Installation de Git et du serveur HTTP Apache :

Les packages Git et Apache sont disponibles dans le référentiel de packages officiel d'Ubuntu. Ainsi, vous pouvez facilement l'installer avec le gestionnaire de packages APT.

Tout d'abord, mettez à jour le cache du référentiel de packages APT avec la commande suivante :

$ sudo apt mise à jour

Le cache du référentiel de packages APT doit être mis à jour.

Maintenant, installez Git et Apache avec la commande suivante :

$ sudo apt installer git apache2 apache2-utils

Maintenant, appuyez sur Oui puis appuyez sur pour confirmer l'installation.

Git et Apache doivent être installés.

Configuration du serveur HTTP Apache pour Git :

Maintenant, activez Apache mod_env, mod_cgi, alias_mod et mod_rewrite modules avec la commande suivante :

$ sudo a2enmod env cgi alias réécrire

Les modules Apache requis doivent être activés.

Maintenant, créez un nouveau répertoire /var/www/git pour conserver tous les dépôts Git avec la commande suivante :

$ sudo mkdir /var/www/git

Maintenant, créez une nouvelle configuration de site Apache /etc/apache2/sites-available/git.conf pour Git avec la commande suivante :

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

Maintenant, tapez les lignes suivantes dans le fichier de configuration :


Webmaster ServerAdmin@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
 

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride Aucun
Exiger tout accordé

 
RacineDocument /var/www/html
 

Options Index FollowSymLinks MultiViews
AllowOverride Aucun
Exiger tout accordé

 
 
ErrorLog $APACHE_LOG_DIR/erreur.Journal
LogLevel avertir
CustomLog $APACHE_LOG_DIR/accès.journal combiné

Le fichier de configuration final se présente comme suit. Maintenant, enregistrez le fichier de configuration en appuyant sur + X suivie par Oui et .

Maintenant, désactivez la configuration du site Apache par défaut avec la commande suivante :

$ sudo a2dissite 000-par défaut.conf

La configuration du site par défaut doit être désactivée.

Maintenant, activez la configuration du site Git avec la commande suivante :

$ sudo a2ensite git.conf

La configuration du site Git doit être activée.

Maintenant, redémarrez le serveur HTTP Apache avec la commande suivante :

$ sudo systemctl redémarrer apache2

Afin de démarrer un nouveau référentiel Git accessible sur le serveur HTTP Apache, vous devrez exécuter quelques commandes. Vous ne voulez pas faire la même chose encore et encore juste pour créer un nouveau référentiel Git. J'ai donc décidé d'écrire un script shell à cet effet.

Tout d'abord, créez un nouveau script shell /usr/local/bin/git-create-repo.sh avec la commande suivante :

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

Maintenant, tapez les lignes de codes suivantes dans le script shell.

#!/bin/bash
 
GIT_DIR="/var/www/git"
REPO_NAME=$1
 
mkdir -p "$GIT_DIR/$REPO_NAME.idiot"
cd "$GIT_DIR/$REPO_NAME.idiot"
 
git init --bare &> /dev/null
touchez git-daemon-export-ok
crochets cp/post-mise à jour.exemples de crochets/post-mise à jour
git configuration http.recevoir le paquet vrai
git update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.idiot"
echo "Référentiel Git '$REPO_NAME' créé dans $GIT_DIR/$REPO_NAME.idiot"

Une fois que vous avez tapé ces lignes, le script shell devrait ressembler à ceci. Maintenant, enregistrez le fichier en appuyant sur + X suivie par Oui et .

Maintenant, ajoutez l'autorisation d'exécution au script shell avec la commande suivante :

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

Maintenant, créez un nouveau dépôt Git test à la racine du projet Git /var/www/git en utilisant le git-create-repo.sh script shell comme suit :

$ sudo git-create-repo.sh test

Le dépôt Git test devrait être créé.

Pour accéder au référentiel Git, vous avez besoin de l'adresse IP du serveur HTTP Git.

$ ip a

Comme vous pouvez le voir, l'adresse IP dans mon cas est 192.168.21.208. Ce sera différent pour toi. Remplacez-le par le vôtre à partir de maintenant.

Maintenant, vous pouvez cloner le test Dépôt Git comme suit :

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

Le dépôt Git test doit être cloné.

Maintenant, ajoutons un nouveau commit au test Dépôt Git.

$ cd test/
$ echo "Bonjour tout le monde" > bonjour
$ git ajouter .
$ git commit -m 'validation initiale'

Maintenant, téléchargez les modifications dans le test Dépôt Git sur le serveur comme suit :

$ git push origine

Comme vous pouvez le voir, les modifications sont téléchargées très bien.

Configuration de l'authentification utilisateur :

Dans cette section, je vais vous montrer comment configurer l'authentification des utilisateurs sur les référentiels Git du serveur.

Tout d'abord, modifiez le git.conf fichier de configuration du site comme suit :

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

Maintenant, ajoutez la section suivante dans le fichier de configuration.


Type d'authentification de base
AuthName "Vérification Git"
AuthUserFile /etc/apache2/git.mot de passe
Exiger un utilisateur valide

Ici, /etc/apache2/git.mot de passe est le fichier de la base de données utilisateur.

Le fichier de configuration final devrait ressembler à ceci. Maintenant, enregistrez le fichier en appuyant sur + X suivie par Oui et .

Maintenant, créez un nouveau fichier de base de données utilisateur /etc/apache2/git.mot de passe et ajouter un nouvel utilisateur (disons shovon) dans le fichier de base de données comme suit :

$ sudo htpasswd -c /etc/apache2/git.mot de passe shovon

Maintenant, saisissez un nouveau mot de passe pour le nouvel utilisateur et appuyez sur .

Retapez le même mot de passe et appuyez sur .

La paire utilisateur-mot de passe doit être ajoutée à la base de données.

Maintenant, redémarrez le serveur HTTP Apache avec la commande suivante :

$ sudo systemctl redémarrer apache2

Maintenant, si vous essayez de cloner le test référentiel à nouveau, il vous sera demandé de vous authentifier comme vous pouvez le voir dans la capture d'écran ci-dessous.

Une fois que vous vous êtes authentifié à l'aide du nom d'utilisateur et du mot de passe, vous pourrez accéder au référentiel Git.

Même lorsque vous essayez de pousser ou d'extraire du référentiel Git, il vous sera également demandé le nom d'utilisateur et le mot de passe.

Une fois que vous vous êtes authentifié, push/pull fonctionnera.

Vous pouvez également définir une base de données utilisateur différente pour différents référentiels Git. Cela peut être utile pour les projets où de nombreuses personnes travaillent ensemble sur le même référentiel Git.

Pour définir l'authentification par référentiel Git, commencez par modifier le git.conf fichier de configuration du site comme suit :

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

Maintenant, ajoutez les lignes suivantes dans le fichier de configuration.


Type d'authentification de base
AuthName "Vérification Git"
AuthUserFile /etc/apache2/git.test.mot de passe
Exiger un utilisateur valide

 

Type d'authentification de base
AuthName "Vérification Git"
AuthUserFile /etc/apache2/git.test2.mot de passe
Exiger un utilisateur valide

Pour chaque dépôt Git test et test2, une la section est définie. Un fichier de base de données utilisateur différent est utilisé pour chaque référentiel Git.

Le fichier de configuration final devrait ressembler à ceci. Maintenant, enregistrez le fichier de configuration en appuyant sur + X suivie par Oui et .

Maintenant, vous pouvez créer les bases de données utilisateur requises comme suit :

$ sudo htpasswd -c /etc/apache2/git.test.mot de passe NOM D'UTILISATEUR
$ sudo htpasswd -c /etc/apache2/git.test2.mot de passe NOM D'UTILISATEUR

Une fois que vous avez terminé, redémarrez le serveur HTTP Apache avec la commande suivante :

$ sudo systemctl redémarrer apache2

Désormais, chaque référentiel Git doit avoir son propre ensemble d'utilisateurs pouvant y accéder.

C'est ainsi que vous configurez Git Server avec Apache HTTP Server sur Ubuntu. Merci d'avoir lu cet article.

Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...
Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...