GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie den HTTP-Git-Server mit Nginx unter Debian 11

Git ist ein Open-Source-Versionskontrollsystem, das von Tausenden von Entwicklern auf der ganzen Welt verwendet wird. Es wird verwendet, um Ihre Softwareänderungen auf Quellebene zu verfolgen. Es ermöglicht Ihnen, Änderungen zu verfolgen, es auf vorherige Stadien zurückzusetzen und eine alternative Version von Dateien und Verzeichnissen zu erstellen.

HTTP Git Server ist ein Open-Source-Projekt, das einen Nginx-Webserver verwendet, um Git-Repositories über Ihr Local Area Network (LAN) bereitzustellen. Es ist sehr einfach und leicht einzurichten. Jeder kann es über die Befehlszeilenschnittstelle verwalten.

In diesem Tutorial werde ich erklären, wie man einen HTTP-Git-Repository-Server mit Nginx unter Debian 11 einrichtet.

Voraussetzungen

  • Ein Server mit Debian 11.
  • Ein gültiger Domainname, auf den Ihre Server-IP verweist.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

Installieren Sie Nginx und andere Abhängigkeiten

Zuerst müssen Sie den Nginx-Webserver und andere erforderliche Pakete installieren, um einen HTTP-Git-Server einzurichten. Sie können alle mit dem folgenden Befehl installieren:

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

Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Ein Git-Repository erstellen

Als nächstes müssen Sie ein Verzeichnis erstellen, um das Git-Repository zu speichern. Lassen Sie uns ein Verzeichnis namens myrepo erstellen im Nginx-Webstammverzeichnis:

mkdir /var/www/html/myrepo

Als nächstes ändern Sie das Verzeichnis in myrepo und erstellen Sie ein weiteres Verzeichnis für Benutzer:

cd /var/www/html/myrepo
mkdir user1.git

Navigieren Sie als Nächstes zum Benutzerverzeichnis und initialisieren Sie das Git-Repository mit dem folgenden Befehl:

cd user1.git
git --bare init

Sie erhalten die folgende Ausgabe:

Initialisiertes leeres Git-Repository in /var/www/html/myrepo/user1.git/

Aktualisieren Sie als Nächstes die Git-Serverinformationen mit dem folgenden Befehl:

git update-server-info

Ändern Sie als Nächstes den Besitz von myrepo und legen Sie die richtige Berechtigung mit dem folgenden Befehl fest:

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

Erstellen Sie als Nächstes einen Benutzer namens user1 und legen Sie ein Passwort fest:

htpasswd -c /var/www/html/myrepo/htpasswd user1

Sie können das Passwort wie folgt festlegen:

Neues Passwort:Neues Passwort erneut eingeben:Passwort für Benutzer user1 wird hinzugefügt

Sie können Ihr Passwort mit dem folgenden Befehl überprüfen:

cat /var/www/html/myrepo/htpasswd

Beispielausgabe:

user1:$apr1$LoyCEkzA$Fjq5nBbLhBRdaxCQBBUQd1

Nginx so konfigurieren, dass es das Git-Repository bedient

Als Nächstes müssen Sie eine Konfigurationsdatei für den virtuellen Nginx-Host erstellen, um das Git-Repository bereitzustellen.

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

Fügen Sie die folgenden Zeilen hinzu:

server {listen 80; root /var/www/html/myrepo; # index.php zur Liste hinzufügen, wenn Sie PHP verwenden index index.html index.htm index.nginx-debian.html; server_name git.ihredomain.com; location / { # Zuerst versuchen, die Anfrage als Datei zu liefern, # dann als Verzeichnis, dann auf die Anzeige von 404 zurückfallen. try_files $uri $uri/ =404; } Standort ~ (/.*) { client_max_body_size 0; auth_basic "Git-Anmeldung"; auth_basic_user_file "/var/www/html/myrepo/htpasswd"; schließen Sie /etc/nginx/fastcgi_params ein; 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/myrepo; fastcgi_param REMOTE_USER $remote_user; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket;}}

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und überprüfen Sie dann Nginx auf Syntaxfehler:

nginx -t

Sie erhalten die folgende Ausgabe:

nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich

Starten Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl startet nginx neu

Sie können den Nginx-Status auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie erhalten die folgende Ausgabe:

? nginx.service - Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server Geladen:geladen (/lib/systemd/system/nginx.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Sa 2021-12-11 08 :00:04 UTC; vor 2s Dokumente:man:nginx(8) Prozess:144985 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process an; (code=beendet, status=0/SUCCESS) Prozess:144986 ExecStart=/usr/sbin/nginx -g daemon on; master_process an; (code=exited, status=0/SUCCESS) Main PID:144987 (nginx) Tasks:2 (limit:2341) Memory:2.5M CPU:42ms CGroup:/system.slice/nginx.service ??144987 nginx:master process /usr/sbin/nginx -g Daemon an; master_process an; ??144988 nginx:worker processDec 11 08:00:04 debian11 systemd[1]:Starten eines Hochleistungs-Webservers und eines Reverse-Proxy-Servers ... 11. Dez 08:00:04 debian11 systemd[1]:nginx.service:Fehler beim Analysieren der PID aus Datei /run/nginx.pid:Ungültiges ArgumentDec 11 08:00:04 debian11 systemd[1]:Started A high performance web server and a reverse proxy server.

Verbindung zum Git-Repository vom Client herstellen

An dieser Stelle wird der Git-HTTP-Server mit Nginx eingerichtet. Jetzt ist es an der Zeit, es vom Client-Rechner aus zu verbinden und zu testen.

Installieren Sie zuerst das Git-Paket auf dem Client-Rechner mit dem folgenden Befehl:

apt-get install git -y

Erstellen Sie als Nächstes mit dem folgenden Befehl ein Verzeichnis für Ihr Projekt:

mkdir-Projekt

Navigieren Sie als Nächstes zu Ihrem Projektverzeichnis und initialisieren Sie Git mit dem folgenden Befehl:

CD-Projekt
git init

Konfigurieren Sie als Nächstes Git mit Ihrer E-Mail-Adresse und Ihrem Benutzernamen:

git config --global user.email "[email protected]"
git config --global user.name "user1"

Fügen Sie als Nächstes Ihren Git-HTTP-Server mit dem folgenden Befehl hinzu:

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

Als nächstes erstellen Sie ein Verzeichnis namens dev01 und fügen darin eine Datei hinzu:

mkdir dev01
echo "Dies ist meine erste Anwendung"> dev01/file1

Als nächstes fügen Sie Ihr erstelltes Verzeichnis und Ihre Datei zum Git-Repository hinzu:

git hinzufügen .

Übernehmen Sie als Nächstes die Änderungen mit dem folgenden Befehl:

git commit -a -m "Dateien und Verzeichnisse hinzufügen"

Sie erhalten die folgende Ausgabe:

[master (root-commit) 0299d83] Dateien und Verzeichnisse hinzufügen 1 Datei geändert, 1 Einfügung (+) Erstellungsmodus 100644 dev01/Datei1

Laden Sie als Nächstes Ihre Datei und Ihr Verzeichnis mit dem folgenden Befehl auf den HTTP-Git-Server hoch:

git push origin master

Sie werden aufgefordert, Ihr Passwort für den Zugriff auf den Git-Server anzugeben:

Passwort für „http://[email protected]“:

Sobald Sie verbunden sind, erhalten Sie die folgende Ausgabe:

Zählen von Objekten:4, fertig. Schreiben von Objekten:100 % (4/4), 281 Bytes | 281,00 KiB/s, fertig. Gesamt 4 (Delta 0), wiederverwendet 0 (Delta 0) Zu http://git.yourdomain.com/user1.git * [neuer Zweig] master -> master

Sie können Ihr Repository auch direkt vom Git-Server mit dem folgenden Befehl herunterladen:

git-Klon http://[email protected]domain.com/user1.git

Sie erhalten die folgende Ausgabe:

Klonen in 'user1'...Passwort für 'http://[email protected]':remote:Aufzählung von Objekten:4, done.remote:Zählung von Objekten:100 % (4/4), done.remote:Gesamt 4 (Delta 0), wiederverwendet 0 (Delta 0), packen-wiederverwendet 0Objekte entpacken:100 % (4/4), fertig.

Schlussfolgerung

In der obigen Anleitung haben Sie gelernt, wie Sie einen HTTP-Git-Server mit Nginx unter Debian 11 einrichten. Sie können dieses Setup jetzt in Ihrer lokalen Entwicklungsumgebung implementieren und Ihr Projekt über die Befehlszeile verwalten und verfolgen.


Debian
  1. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 16.04

  2. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 20.04

  3. So installieren Sie den Ghost unter Debian mit Nginx

  4. So installieren Sie DokuWiki auf Debian Wheezy mit Nginx

  5. So installieren Sie WonderCMS mit Nginx unter Debian 11

So installieren Sie Nextcloud 10 mit Nginx auf Debian 8

So installieren Sie phpMyAdmin mit Nginx unter Debian 11 Bullseye

So installieren Sie phpMyAdmin mit Nginx unter Debian 11

So installieren Sie Nginx mit PHP-FPM unter Debian 11

So installieren Sie den HTTP-Git-Server unter Ubuntu 20.04 LTS

So installieren Sie Nginx in Debian 7