GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 20.04

Git est un système de gestion des versions gratuit et open source développé par Linus Torvalds. Il est utilisé par des millions de développeurs à travers le monde. GitHub propose également un service d'hébergement de code gratuit. Cependant, le service gratuit ne permet pas l'hébergement privé du code. Dans ce cas, vous pouvez héberger votre propre serveur d'hébergement de code avec le serveur HTTP Git. Cela vous donnera un contrôle total sur le serveur.

Dans ce tutoriel, nous allons vous montrer comment installer et configurer le serveur HTTP Git avec Nginx sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Nom de domaine valide pointant vers l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Avant de commencer, il est recommandé de mettre à jour vos packages de serveur vers la dernière version. Vous pouvez les mettre à jour avec la commande suivante :

apt-get update -y

Une fois tous les packages mis à jour, vous pouvez passer à l'étape suivante.

Installer Nginx et Git

Ensuite, vous devrez installer le serveur Web Nginx, Git et les autres packages requis sur votre système. Vous pouvez les installer avec la commande suivante :

apt-get install nginx git fcgiwrap apache2-utils unzip -y

Une fois tous les packages installés, vous pouvez passer à l'étape suivante.

Créer un référentiel Git

Ensuite, vous devrez créer un référentiel Git dans le répertoire racine Web Nginx. Commencez par créer un répertoire nommé git avec la commande suivante :

mkdir /var/www/html/git

Ensuite, changez le répertoire en git et créez un nouveau répertoire pour le dépôt Git :

cd /var/www/html/git
mkdir gituser.git

Ensuite, changez dans ce nouveau répertoire et initialisez le dépôt Git avec la commande :

git --bare init

Ensuite, mettez à jour le serveur Git avec la commande :

git update-server-info

Ensuite, définissez la propriété et l'autorisation sur le répertoire git avec la commande suivante :

chown -R www-data:www-data /var/www/html/git
chmod -R 755 /var/www/html/git

Ensuite, créez un nouveau gituser pour l'authentification avec la commande suivante :

htpasswd -c /var/www/html/git/htpasswd gituser

Il vous sera demandé de définir un mot de passe comme indiqué ci-dessous :

Nouveau mot de passe :Retaper le nouveau mot de passe :Ajout du mot de passe pour l'utilisateur gituser

Vous pouvez maintenant vérifier votre mot de passe à l'aide de la commande suivante :

cat /var/www/html/git/htpasswd

Vous devriez obtenir le résultat suivant :

gituser :$apr1$iPKZDbFB$ziRRbGXzVMMHaPYOTL05m/

Configurer Nginx pour Git

Ensuite, vous devrez configurer Nginx pour servir le référentiel Git. Vous pouvez créer un nouveau fichier de configuration d'hôte virtuel pour Git avec la commande suivante :

nano /etc/nginx/conf.d/git.conf

Ajoutez les lignes suivantes :

serveur { écoute 80 ; racine /var/www/html/git ; # Ajoutez index.php à la liste si vous utilisez PHP index index.html index.htm index.nginx-debian.html ; nom_serveur git.exemple.com ; location / { # Première tentative de servir la requête en tant que fichier, puis # en tant que répertoire, puis revenir à l'affichage d'un 404. try_files $uri $uri/ =404; }emplacement ~ (/.*) { client_max_body_size 0 ; auth_basic "Connexion Git" ; auth_basic_user_file "/var/www/html/git/htpasswd" ; inclure /etc/nginx/fastcgi_params ; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend ; fastcgi_param GIT_HTTP_EXPORT_ALL "" ; fastcgi_param GIT_PROJECT_ROOT /var/www/html/git ; fastcgi_param REMOTE_USER $utilisateur_distant ; fastcgi_param PATH_INFO $1 ; fastcgi_pass unix :/var/run/fcgiwrap.socket ;}}

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

nginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est oknginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussi

Ensuite, redémarrez le service Nginx pour appliquer les modifications :

systemctl redémarrer nginx

Vous pouvez également vérifier l'état du service Nginx à l'aide de la commande suivante :

statut systemctl nginx

Vous devriez obtenir le résultat suivant :

 ? nginx.service - Un serveur Web hautes performances et un serveur proxy inverse Chargé :chargé (/lib/systemd/system/nginx.service ; activé ; préréglage du fournisseur :activé) Actif :actif (en cours d'exécution) depuis le mar. 2020-11-17 07 :43:46 UTC ; Il y a 4 s Docs :man:nginx(8) Processus :3240 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on ; master_process activé ; (code=exited, status=0/SUCCESS) Processus :3256 ExecStart=/usr/sbin/nginx -g daemon on ; master_process activé ; (code=exited, status=0/SUCCESS) PID principal :3257 (nginx) Tâches :3 (limite :4691) Mémoire :3,5 M CGroup :/system.slice/nginx.service ??3257 nginx :processus maître /usr/ sbin/nginx -g démon activé ; master_process activé ; ??3258 nginx :processus de travail ??3259 nginx :processus de travailNov 17 07:43:46 ubuntu2004 systemd[1] :Démarrage Un serveur Web haute performance et un serveur proxy inverse...Nov 17 07:43:46 ubuntu2004 systemd[ 1] :Démarré Un serveur Web hautes performances et un serveur proxy inverse.

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Tester le serveur HTTP Git

À ce stade, le serveur Git est installé et configuré. Maintenant, il est temps de le tester.

Sur la machine cliente, installez le package Git avec la commande suivante :

apt-get install git -y

Une fois installé, créez un répertoire nommé myapp avec la commande suivante :

mkdir monapp

Ensuite, passez au nouveau répertoire et initialisez le Git avec la commande suivante :

cd monapp
git init

Ensuite, ajoutez votre référentiel Git distant avec la commande suivante :

git remote add origin http://[email protected]/gituser.git

Ensuite, créez les répertoires app1 et app2 et créez également les fichiers app1 et app2 avec du contenu dans ces répertoires :

mkdir app1 app2
echo "Ceci est ma première application"> app1/app1
echo "Ceci est ma première application"> app2/app2

Ensuite, ajoutez tous les répertoires et fichiers au référentiel avec la commande suivante :

git add .

Ensuite, validez les modifications avec la commande suivante :

git commit -a -m "Ajouter des fichiers et des répertoires"

Vous devriez obtenir le résultat suivant :

[master (root-commit) 4e90372] Ajouter des fichiers et des répertoires 2 fichiers modifiés, 2 insertions (+) mode de création 100644 app1/app1 mode de création 100644 app2/app2

Ensuite, envoyez ces modifications au serveur Git distant avec la commande suivante :

maître d'origine git push

Il vous sera demandé de fournir un mot de passe pour l'utilisateur Git distant comme indiqué ci-dessous :

Mot de passe pour 'http://[email protected]' :

Indiquez votre mot de passe et appuyez sur Entrée. Vous devriez obtenir le résultat suivant :

Comptage d'objets :5, terminé.Compression delta utilisant jusqu'à 4 threads.Compression d'objets :100 % (2/2), terminé.Écriture d'objets :100 % (5/5), 354 octets | 0 octets/s, terminé.Total 5 (delta 0), réutilisé 0 (delta 0)Vers http://[email protected]/gituser.git * [new branch] master -> master

La sortie ci-dessus indique que vos fichiers et répertoires sont ajoutés au référentiel Git distant. Si vous souhaitez cloner ce référentiel sur votre système local, exécutez la commande suivante :

cloner git http://[email protected]/gituser.git

Vous devriez obtenir le résultat suivant :

Clonage dans 'gituser'...Mot de passe pour 'http://[email protected]' :remote :Enumération d'objets :5, done.remote :Comptage d'objets :100 % (5/5), done.remote :Compression d'objets :100 % (2/2), terminé.Remote : 5 total (delta 0), réutilisé 0 (delta 0)Décompression d'objets :100 % (5/5), terminé.Vérification de la connectivité... terminé. 

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès le serveur HTTP Git sur le serveur Ubuntu 20.04. Vous pouvez désormais implémenter le serveur Git dans votre environnement de développement accessible depuis votre LAN.


Ubuntu
  1. Comment installer Nginx sur Ubuntu 20.04

  2. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  3. Comment installer Magento avec Nginx sur Ubuntu 15.10

  4. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 16.04

  5. Comment installer le serveur HTTP Git avec Nginx sur Debian 11

Comment installer FileRun sur Ubuntu 20.04 avec Apache/Nginx

Comment installer InvoiceNinja sur le serveur Ubuntu 18.04 avec Apache/Nginx

Comment installer InvoiceNinja sur le serveur Ubuntu 20.04 avec Apache/Nginx

Comment installer Nginx sur Ubuntu

Comment installer LetsEncrypt avec Nginx sur Ubuntu 15.04

Comment installer le serveur HTTP Git sur Ubuntu 20.04 LTS