Configurer Git Server avec HTTP sur Ubuntu

Configure Git Server With Http 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.

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 :



$sudomise à jour appropriée



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





Maintenant, installez Git et Apache avec la commande suivante :



$sudoapteinstaller allerapache2 apache2-utils

Maintenant, appuyez sur ET 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 :

$sudoa2enmodenvcgialiasré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 //www/aller

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-disponibles/git.conf

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

<VirtualHost*:80>
Webmestre de ServerAdmin@hôte local

SetEnv GIT_PROJECT_ROOT<fort> //www/allerfort>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/aller/ /usr/lib/git-core/git-http-backend/

Alias/aller //www/aller

<Annuaire/usr/lib/git-core>
Options +ExecCGI-Multivues+SymLinksIfOwnerMatch
AllowOverride Aucun
Exiger tout accordé
Annuaire>

Racine de document//www/html

<Annuaire//www>
Options Index FollowSymLinks MultiViews
AllowOverride Aucun
Exiger tout accordé
Annuaire>


Journal des erreurs$ {APACHE_LOG_DIR}/error.log
LogLevel avertir
Journal personnalisé$ {APACHE_LOG_DIR}/access.log combiné
VirtualHost>

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

Désactivez maintenant la configuration par défaut du site Apache avec la commande suivante :

$sudoa2dissite 000-default.conf

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

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

$sudoa2ensite git.conf

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

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

$sudosystemctl redémarrer apache2

Afin de démarrer un nouveau référentiel Git accessible via 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/un m/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}.aller'
CD '${GIT_DIR}/${REPO_NAME}.aller'

git init --seulement &> /développeur/nul
touchergit-daemon-export-ok
cpcrochets/crochets post-update.sample/post-mise à jour
git configurationhttp.receivepackvrai
git update-server-info
chown -Rfwww-données : www-données'${GIT_DIR}/${REPO_NAME}.aller'
chassèrent 'Référentiel Git'${REPO_NAME}' créé en${GIT_DIR}/${REPO_NAME}.aller'

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

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

$sudo chmod+ x/usr/local/un m/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 :

$sudogit-create-repo.shtest

Le référentiel 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à

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

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

$git clonehttp://192.168.21.208/aller/tester.aller

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

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

$CDtest/
$chassèrent 'Bonjour le monde' >Bonjour
$git ajouter.
$git commit -m « commission initiale »

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

$git pousserorigine

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-disponibles/git.conf

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

<EmplacementMatch/aller/.*.aller>
Type d'authentification de base
AuthName« Vérification Git »
AuthUserFile/etc/apache2/git.passwd
Exiger un utilisateur valide
EmplacementMatch>

Ici, /etc/apache2/git.passwd 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 ET et .

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

$sudohtpasswd-c /etc/apache2/git.passwd 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 :

$sudosystemctl redémarrer apache2

Maintenant, si vous essayez de cloner le test à 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é, le 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-disponibles/git.conf

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

<Emplacement/aller/tester.aller>
Type d'authentification de base
AuthName« Vérification Git »
AuthUserFile/etc/apache2/git.test.passwd
Exiger un utilisateur valide
Emplacement>

<Emplacement/aller/test2.git>
Type d'authentification de base
AuthName« Vérification Git »
AuthUserFile/etc/apache2/git.test2.passwd
Exiger un utilisateur valide
Emplacement>

Pour chaque dépôt Git test et test2 , à 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 ET et .

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

$sudohtpasswd-c /etc/apache2/git.test.passwd NOM D'UTILISATEUR
$sudohtpasswd-c /etc/apache2/git.test2.passwd NOM D'UTILISATEUR

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

$sudosystemctl 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.