Git ist ein kostenloses und Open-Source-Versionierungssystem, das von Linus Torvalds entwickelt wurde. Es wird von Millionen von Entwicklern auf der ganzen Welt verwendet. GitHub bietet auch einen kostenlosen Code-Hosting-Service an. Der kostenlose Dienst erlaubt jedoch kein privates Hosting des Codes. In diesem Fall können Sie Ihren eigenen Code-Hosting-Server mit dem Git-HTTP-Server hosten. Dadurch erhalten Sie die volle Kontrolle über den Server.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Git-HTTP-Server mit Nginx unter Ubuntu 20.04 installieren und konfigurieren.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Gültiger Domainname, auf den Ihre Server-IP verweist.
- Ein Root-Passwort wird auf dem Server konfiguriert.
Erste Schritte
Bevor Sie beginnen, wird empfohlen, Ihre Serverpakete auf die neueste Version zu aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:
apt-get update -y
Sobald alle Pakete aktualisiert sind, können Sie mit dem nächsten Schritt fortfahren.
Nginx und Git installieren
Als nächstes müssen Sie den Nginx-Webserver, Git und andere erforderliche Pakete auf Ihrem System installieren. Sie können sie 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 Git-Repository im Nginx-Web-Root-Verzeichnis erstellen. Erstellen Sie zuerst ein Verzeichnis namens git mit dem folgenden Befehl:
mkdir /var/www/html/git
Als nächstes ändern Sie das Verzeichnis in git und erstellen ein neues Verzeichnis für das Git-Repository:
cd /var/www/html/git
mkdir gituser.git
Als nächstes wechseln Sie in dieses neue Verzeichnis und initialisieren das Git-Repository mit dem Befehl:
git --bare init
Als nächstes aktualisieren Sie den Git-Server mit dem Befehl:
git update-server-info
Legen Sie als Nächstes den Besitz und die Berechtigung für das Git-Verzeichnis mit dem folgenden Befehl fest:
chown -R www-data:www-data /var/www/html/git
chmod -R 755 /var/www/html/git
Erstellen Sie als Nächstes einen neuen Guser zur Authentifizierung mit dem folgenden Befehl;
htpasswd -c /var/www/html/git/htpasswd gituser
Sie werden aufgefordert, ein Passwort festzulegen, wie unten gezeigt:
Neues Passwort:Neues Passwort erneut eingeben:Passwort für Benutzer gituser wird hinzugefügt
Sie können Ihr Passwort jetzt mit dem folgenden Befehl überprüfen:
cat /var/www/html/git/htpasswd
Sie sollten die folgende Ausgabe erhalten:
gituser:$apr1$iPKZDbFB$ziRRbGXzVMMHaPYOtL05m/
Nginx für Git konfigurieren
Als nächstes müssen Sie Nginx konfigurieren, um das Git-Repository zu bedienen. Mit dem folgenden Befehl können Sie eine neue Konfigurationsdatei für virtuelle Hosts für Git erstellen:
nano /etc/nginx/conf.d/git.conf
Fügen Sie die folgenden Zeilen hinzu:
server {listen 80; root /var/www/html/git; # index.php zur Liste hinzufügen, wenn Sie PHP verwenden index index.html index.htm index.nginx-debian.html; Servername git.example.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/git/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/git; 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. Überprüfen Sie dann Nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe erhalten:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie als Nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Sie können den Status des Nginx-Dienstes auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe erhalten:
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
HTTP-Git-Server testen
An diesem Punkt wird der Git-Server installiert und konfiguriert. Jetzt ist es an der Zeit, es zu testen.
Installieren Sie auf dem Clientcomputer das Git-Paket mit dem folgenden Befehl:
apt-get install git -y
Erstellen Sie nach der Installation mit dem folgenden Befehl ein Verzeichnis namens myapp:
mkdir myapp
Wechseln Sie als nächstes in das neue Verzeichnis und initialisieren Sie das Git mit dem folgenden Befehl:
cd myapp
git init
Fügen Sie als Nächstes Ihr entferntes Git-Repository mit dem folgenden Befehl hinzu:
git remote add origin http://[email protected]/gituser.git
Erstellen Sie als Nächstes die Verzeichnisse app1 und app2 sowie die Dateien app1 und app2 mit einigen Inhalten in diesen Verzeichnissen:
mkdir app1 app2
echo "Das ist meine erste Anwendung"> app1/app1
echo "Das ist meine erste Anwendung"> app2/app2
Fügen Sie als Nächstes alle Verzeichnisse und Dateien mit dem folgenden Befehl zum 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 sollten die folgende Ausgabe erhalten:
[master (root-commit) 4e90372] Dateien und Verzeichnisse hinzufügen 2 Dateien geändert, 2 Einfügungen (+) Erstellungsmodus 100644 app1/app1 Erstellungsmodus 100644 app2/app2
Als nächstes übertragen Sie diese Änderungen mit dem folgenden Befehl auf den Remote-Git-Server:
git push origin master
Sie werden wie unten gezeigt aufgefordert, ein Passwort für den Remote-Git-Benutzer anzugeben:
Passwort für „http://[email protected]“:
Geben Sie Ihr Passwort ein und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe erhalten:
Zählen von Objekten:5, fertig. Delta-Komprimierung mit bis zu 4 Threads. Komprimieren von Objekten:100 % (2/2), fertig. Schreiben von Objekten:100 % (5/5), 354 Bytes | 0 Byte/s, fertig. Insgesamt 5 (Delta 0), wiederverwendet 0 (Delta 0) An http://[email protected]/gituser.git * [neuer Zweig] master -> master
Die obige Ausgabe zeigt an, dass Ihre Dateien und Verzeichnisse dem Remote-Git-Repository hinzugefügt wurden. Wenn Sie dieses Repository auf Ihr lokales System klonen möchten, führen Sie den folgenden Befehl aus:
git-Klon http://[email protected]/gituser.git
Sie sollten die folgende Ausgabe erhalten:
Klonen in 'gituser'...Passwort für 'http://[email protected]':remote:Aufzählung von Objekten:5, done.remote:Zählung von Objekten:100 % (5/5), done.remote:Objekte komprimieren:100 % (2/2), erledigt. Remote:Gesamt 5 (Delta 0), wiederverwendet 0 (Delta 0) Objekte entpacken:100 % (5/5), fertig. Konnektivität prüfen... fertig.
Schlussfolgerung
Herzliche Glückwünsche! Sie haben den Git-HTTP-Server erfolgreich auf dem Ubuntu 20.04-Server installiert und eingerichtet. Sie können jetzt den Git-Server in Ihrer Entwicklungsumgebung implementieren, auf die Sie von Ihrem LAN aus zugreifen können.