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
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
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/bashGIT_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
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 aComme 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 origineComme 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
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.confMaintenant, 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
Le fichier de configuration final devrait ressembler à ceci. Maintenant, enregistrez le fichier de configuration en appuyant sur
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.