GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

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

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:

? 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 Di :43:46 UTC; vor 4s Dokumente:man:nginx(8) Prozess:3240 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process an; (code=beendet, status=0/SUCCESS) Prozess:3256 ExecStart=/usr/sbin/nginx -g daemon on; master_process an; (code=exited, status=0/SUCCESS) Main PID:3257 (nginx) Tasks:3 (limit:4691) Memory:3.5M CGroup:/system.slice/nginx.service ??3257 nginx:master process /usr/ sbin/nginx -g Daemon an; master_process an; ??3258 nginx:worker process ??3259 nginx:worker processNov 17 07:43:46 ubuntu2004 systemd[1]:Starten eines Hochleistungs-Webservers und eines Reverse-Proxy-Servers ... Nov 17 07:43:46 ubuntu2004 systemd[ 1]:Gestartet Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server.

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.


Ubuntu
  1. So installieren Sie Nginx unter Ubuntu 20.04

  2. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  3. So installieren Sie Magento mit Nginx unter Ubuntu 15.10

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

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

So installieren Sie FileRun unter Ubuntu 20.04 mit Apache/Nginx

So installieren Sie InvoiceNinja auf Ubuntu 18.04 Server mit Apache/Nginx

So installieren Sie InvoiceNinja auf Ubuntu 20.04 Server mit Apache/Nginx

So installieren Sie Nginx auf Ubuntu

So installieren Sie LetsEncrypt mit Nginx unter Ubuntu 15.04

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