Git

Configurer Git Server avec HTTP sur CentOS 8

Configurer Git Server avec HTTP sur CentOS 8
Dans cet article, je vais vous montrer comment configurer le serveur Git Smart HTTP sur CentOS 8 pour héberger vos dépôts Git en privé. Alors, commençons.

Installation de Git et du serveur HTTP Apache :

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

$ sudo dnf makecache

Maintenant, installez Git, le serveur HTTP Apache et les outils Apache avec la commande suivante :

$ sudo dnf installer git httpd httpd-tools

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

Git, Apache et les outils Apache requis doivent être installés.

Configuration du serveur HTTP Apache :

Dans cette section, je vais vous montrer comment configurer le serveur Apache pour accéder aux référentiels Git via le protocole HTTP.

Tout d'abord, créez un nouveau fichier de configuration /etc/httpd/conf.d/git.conf avec la commande suivante :

$ sudo vi /etc/httpd/conf.d/git.conf

Maintenant, ajoutez les lignes suivantes au fichier de configuration /etc/httpd/conf.d/git.conf:


SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
DocumentRoot /var/www/git
ScriptAlias ​​/ /usr/libexec/git-core/git-http-backend/
 

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


Dav sur
Index des options FollowSymLinks
AllowOverride Aucun
Exiger tout accordé

Le fichier de configuration final devrait ressembler à ceci. Maintenant, enregistrez le fichier de configuration.

Maintenant, créez le GIT_PROJECT_ROOT annuaire /var/www/git avec la commande suivante :

$ sudo mkdir /var/www/git

Maintenant, configurez SELinux pour le /var/www/git répertoire avec la commande suivante :

$ sudo semanage fcontext -m -t httpd_sys_rw_content_t
"/var/www/git(/.*)?"

Pour que les modifications de SELinux prennent effet, exécutez la commande suivante :

$ sudo restorecon -Rv /var/www/git

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

$ sudo systemctl redémarrer httpd

Ajoutez également le service de serveur HTTP Apache au démarrage du système CentOS 8 avec la commande suivante :

$ sudo systemctl activer httpd

Maintenant, autorisez le port HTTP (80) à travers le pare-feu avec la commande suivante :

$ sudo firewall-cmd --add-service=http --permanent

Pour que les modifications prennent effet, rechargez le pare-feu comme suit :

$ sudo firewall-cmd --reload

Écrire un script pour créer plus facilement des référentiels Git accessibles via HTTP :

Pour faciliter la création de référentiels Git accessibles via HTTP, j'ai écrit un script shell simple que vous pouvez utiliser pour gagner beaucoup de votre temps précieux.

Si vous souhaitez utiliser mon script, créez un nouveau fichier dans le chemin /usr/sbin/git-crate-repo avec la commande suivante :

$ sudo vi /usr/sbin/git-create-repo

Tapez ensuite les lignes de codes suivantes dans le fichier nouvellement créé /usr/sbin/git-crate-repo.

#!/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 configuration http.uploadpack vrai
git update-server-info
chown -Rf apache:apache "$GIT_DIR/$REPO_NAME.idiot"
echo "Référentiel Git '$REPO_NAME' créé dans $GIT_DIR/$REPO_NAME.idiot"

Voici à quoi ressemble le script shell final. Une fois que vous avez terminé, enregistrez le fichier.

Maintenant, ajoutez l'autorisation exécutable au script shell /usr/sbin/git-create-repo avec la commande suivante :

$ sudo chmod +x /usr/sbin/git-create-repo

Créez des référentiels Git accessibles via HTTP :

Maintenant, vous pouvez créer un nouveau référentiel Git accessible HTTP (appelons-le test) avec la commande suivante :

$ sudo git-create-repo test

Un nouveau référentiel Git accessible via HTTP test devrait être mis en caisse.

Accéder aux référentiels Git depuis le serveur Git :

Pour accéder aux référentiels Git que vous avez créés sur votre serveur CentOS 8 Git, vous avez besoin de l'adresse IP du serveur CentOS 8 Git et du nom du référentiel Git.

L'administrateur du serveur Git peut trouver l'adresse IP du serveur Git avec la commande suivante :

$ nmcli

Dans mon cas, l'adresse IP est 192.168.20.129. Ce sera différent pour toi. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Une fois que l'administrateur du serveur Git a trouvé l'adresse IP, il peut l'envoyer aux utilisateurs/développeurs qui utiliseront les référentiels Git hébergés sur le serveur Git. Ensuite, les utilisateurs/développeurs peuvent accéder aux référentiels Git de leur choix.

Par exemple, si bob veut cloner le dépôt Git test depuis le serveur Git, il peut le faire comme suit :

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

Le dépôt Git test doit être cloné à partir du serveur Git.

Un nouvel annuaire test/ devrait être créé dans le répertoire de travail actuel de bob.

Maintenant, Bob peut naviguer vers le test/ répertoire comme suit :

$ cd test/

Maintenant, Bob crée un nouveau fichier un message.SMS dans le dépôt Git.

$ echo 'bonjour de linuxhint' >> message.SMS

Bob valide les modifications.

$ git ajouter .

$ git commit -m 'validation initiale'

Bob confirme si les modifications ont été validées dans le référentiel.

$ git log --oneline

Maintenant, bob télécharge les modifications sur le serveur Git.

$ git push origine

Un autre développeur (disons shovon) qui veut contribuer au test Le référentiel Git peut également cloner le test référentiel du serveur Git.

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

Shovon navigue vers le test/ annuaire.

$ cd test/

Shovon trouve le commit que bob a fait.

Maintenant, Shovon change le message.fichier txt.

$ echo 'shovon a ajouté de nouveaux textes' >> message.SMS

S'engage les changements.

$ git ajouter .

$ git commit -m 'ajoute un nouveau message'

Shovon confirme si les modifications ont été validées dans le référentiel.

$ git log --oneline

Shovon télécharge les modifications sur le serveur Git.

$ git push origine

Maintenant, bob récupère les modifications du serveur Git.

$ git pull

Bob trouve le nouveau commit.

$ git log --oneline

Bob trouve les modifications que Shovon a apportées au message.fichier txt.

Voici comment vous pouvez utiliser les référentiels Git à partir du serveur HTTP Git.

Ajout de l'authentification utilisateur au serveur Git :

Si vous souhaitez ajouter une authentification utilisateur à des référentiels Git à l'échelle du serveur ou à des référentiels Git spécifiques, consultez l'article Configurer Git Server avec HTTP sur Ubuntu.

C'est ainsi que vous configurez Git Smart HTTP Server sur CentOS 8 et utilisez les référentiels Git à partir du serveur Git. Merci d'avoir lu cet article.

Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...