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

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

Git ist ein kostenloses und quelloffenes Versionskontrollsystem, mit dem Codeänderungen nachverfolgt werden können. Mit Git können Sie viele Repositories für dieselbe Anwendung erstellen und die Arbeit an diesen Dateien zwischen mehreren Personen koordinieren. Es wird hauptsächlich für die Quellcodeverwaltung in der Softwareentwicklung verwendet.

In diesem Artikel erfahren Sie, wie Sie einen HTTP-Git-Server mit Nginx unter Ubuntu 16.04 installieren.

Anforderungen

  • Neuer Ubuntu 16.04-Server auf Ihrem System installiert.
  • Sudo-Benutzer mit Root-Rechten.
  • Statische IP-Adresse 192.168.15.189 auf Ihrem Server konfigurieren

1 Erste Schritte

Bevor Sie beginnen, müssen Sie Ihr System mit der neuesten stabilen Version aktualisieren.

Sie können dies tun, indem Sie den folgenden Befehl ausführen:

sudo apt-get update -y
sudo apt-get upgrade -y

Sobald Ihr System aktualisiert ist, starten Sie Ihr System neu und melden Sie sich mit sudo user.

an

2 Erforderliche Pakete installieren

Zuerst müssen Sie einige erforderliche Pakete, einschließlich nginx, git, nano und fcgiwrap, auf Ihrem System installieren. Sie können alle installieren, indem Sie den folgenden Befehl ausführen:

sudo apt-get install nginx git nano fcgiwrap apache2-utils -y

Sobald alle erforderlichen Pakete installiert sind, müssen Sie ein Verzeichnis für das Git-Repository erstellen. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

sudo mkdir /var/www/html/git

Geben Sie als Nächstes dem Git-Verzeichnis die richtige Berechtigung:

sudo chown -R www-data:www-data /var/www/html/git

Sobald Sie fertig sind, können Sie mit der Konfiguration des Nginx-Webservers fortfahren.

3 Nginx konfigurieren

Zunächst müssen Sie Nginx so konfigurieren, dass Git-Verkehr an Git weitergeleitet wird. Sie können dies tun, indem Sie die Nginx-Standardkonfigurationsdatei bearbeiten:

sudo nano /etc/nginx/sites-available/default

Ändern Sie die Datei wie unten gezeigt:

# Standardserverkonfiguration#server { listen 80 default_server; hören [::]:80 default_server; 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 _; 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; # Git-Pushes können massiv sein, nur um sicherzustellen, dass nginx die Verbindung nicht plötzlich trennt, fügen Sie dies hinzu. auth_basic "Git-Anmeldung"; # Was auch immer Text tun wird. auth_basic_user_file "/var/www/html/git/htpasswd"; schließen Sie /etc/nginx/fastcgi_params ein; # Fastcgi-Standardkonfigurationen einschließen fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Weist Fastcgi an, die Anfrage an die ausführbare Git-HTTP-Backend-Datei zu übergeben fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/www/html/git; # /var/www/git ist der Speicherort all Ihrer Git-Repositories. fastcgi_param REMOTE_USER $remote_user; fastcgi_param PATH_INFO $1; # Nimmt die Capture-Gruppe aus unserer Location-Direktive und gibt sie an Git weiter. fastcgi_pass unix:/var/run/fcgiwrap.socket; # Übergeben Sie die Anfrage an fastcgi}}

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Testen Sie dann Nginx mit dem folgenden Befehl auf Konfigurationsfehler:

sudo nginx -t

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

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

Als Nächstes müssen Sie ein Benutzerkonto erstellen, das Sie verwenden müssen, um das Repository zu durchsuchen und festzuschreiben. Sie können einen Benutzer mit dem Namen hitesh erstellen, indem Sie das Dienstprogramm htpasswd verwenden:

sudo htpasswd -c /var/www/html/git/htpasswd hitesh

Starten Sie abschließend Nginx neu, um alle Änderungen mit dem folgenden Befehl zu übernehmen:

sudo systemctl restart nginx

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

sudo systemctl status nginx

Sie sollten die folgende Ausgabe sehen:

?? 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 20.06.2017 23 :00:11 IST; Vor 51 Minuten Prozess:12415 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS) Prozess:7616 ExecReload=/usr/sbin/nginx -g daemon on; master_process an; -s reload (code=beendet, status=0/SUCCESS) Prozess:12423 ExecStart=/usr/sbin/nginx -g daemon on; master_process an; (code=beendet, status=0/SUCCESS) Prozess:12419 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process an; (code=exited, status=0/SUCCESS) Haupt-PID:12427 (nginx) CGroup:/system.slice/nginx.service ??????12427 nginx:master process /usr/sbin/nginx -g daemon on; master_process auf ??????12431 nginx:Arbeitsprozess 20. Juni 23:00:11 localhost systemd[1]:Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server gestoppt. 20. Juni 23:00:11 localhost systemd[1] :Starten eines Hochleistungs-Webservers und eines Reverse-Proxy-Servers ... 20. Juni 23:00:11 localhost systemd [1]:nginx.service:Fehler beim Lesen der PID aus der Datei /run/nginx.pid:Ungültiges Argument 20. Juni 23:00:11 localhost systemd[1]:Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server gestartet.

4 Git-Repository erstellen

Sobald alles richtig konfiguriert ist, ist es an der Zeit, ein Git-Repository zu erstellen.

Sie können ein Repository mit dem Namen repo.git mit dem folgenden Befehl erstellen:

cd /var/www/html/git
sudo mkdir hitesh.git
sudo cd hitesh.git
sudo git --bare init
sudo git update-server- info
sudo chown -R www-data.www-data .
sudo chmod -R 777 .

Als nächstes müssen Sie den HTTP-Dienst durch die UFW-Firewall zulassen. Standardmäßig ist UFW auf Ihrem System deaktiviert, daher müssen Sie es zuerst aktivieren. Sie können es mit dem folgenden Befehl aktivieren:

sudo ufw enable

Sobald die UFW-Firewall aktiviert ist, können Sie den HTTP-Dienst zulassen, indem Sie den folgenden Befehl ausführen:

sudo ufw erlaubt http

Sie können jetzt den Status der UFW-Firewall überprüfen, indem Sie den folgenden Befehl ausführen:

sudo ufw-Status

Ok, das war's für die serverseitige Konfiguration. Sie können jetzt auf die Client-Seite gehen, um Git zu testen.

5 Git auf Client-Rechner testen

Bevor Sie beginnen, müssen Sie git auf dem Clientsystem installieren. Sie können es mit dem folgenden Befehl installieren:

sudo apt-get install git -y

Erstellen Sie zunächst ein lokales Repository mit dem folgenden Befehl:

sudo mkdir ~/testproject

Wechseln Sie als Nächstes in das Verzeichnis testproject und starten Sie das neue Remote-Repository mit dem folgenden Befehl:

cd ~/testproject
git init
git remote add origin http://[email protected]/hitesh.git

Als nächstes erstellen Sie einige Dateien und Verzeichnisse mit dem folgenden Befehl:

mkdir test1 test2 test3
echo "Das ist mein erstes Repository"> test1/repo1
echo "Das ist mein zweites Repository"> test2/repo2
echo "Das ist mein drittes Repository "> test3/repo3

Führen Sie als Nächstes den folgenden Befehl aus, um alle Dateien und Verzeichnisse zum Repository hinzuzufügen:

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

Sie sollten die folgende Ausgabe sehen:

[master 002fac9] Dateien und Verzeichnisse hinzufügen 3 Dateien geändert, 3 Einfügungen (+) Erstellungsmodus 100644 Repo1 Erstellungsmodus 100644 Repo2 Erstellungsmodus 100644 Repo3

Als nächstes pushen Sie alle Dateien und Verzeichnisse mit dem folgenden Befehl auf den Git-Server:

git push origin master

Sie sollten die folgende Ausgabe sehen:

Passwort für 'http://[email protected]':Zählen von Objekten:6, erledigt. Delta-Komprimierung mit bis zu 4 Threads. Komprimieren von Objekten:100 % (2/2), fertig. Schreiben von Objekten:100 % ( 5/5), 422 Bytes | 0 Bytes/s, fertig. Insgesamt 5 (Delta 0), wiederverwendet 0 (Delta 0)An http://[email protected]/hitesh.git 68f1270..002fac9 master -> master

Jetzt wurden alle Ihre Dateien und Verzeichnisse auf Ihren Git-Server übertragen.

Ihr Git-Repository-Erstellungsprozess ist jetzt abgeschlossen. Sie können Ihr Repository in Zukunft jetzt ganz einfach klonen. Sie können Ihr Repository mit dem folgenden Befehl auf einem Remote-System klonen:

git-Klon [E-Mail-geschützt]:/var/www/html/git/hitesh.git

Sie sollten die folgende Ausgabe sehen:

Klonen in 'hitesh'...[email protected]'s Passwort:remote:Objekte zählen:8, fertig.remote:Objekte komprimieren:100 % (3/3), fertig. Objekte empfangen:100 % (8 /8), 598 Bytes | 0 Bytes/s, done.remote:Insgesamt 8 (Delta 0), wiederverwendet 0 (Delta 0)Verbindung prüfen... fertig.

Wechseln Sie nun mit dem folgenden Befehl in das geklonte Repository:

cd hitesh
Baum

Sie sollten die folgende Ausgabe sehen:

.|--test1| `--repo1|--test2| `-- repo2`-- test3 `-- repo33 Verzeichnisse, 3 Dateien

Schlussfolgerung

Ich hoffe, Sie können den Quellcode jetzt einfach mit dem Git-Server pushen, pullen, klonen und committen. Fühlen Sie sich frei, mich zu kommentieren, wenn Sie irgendwelche Zweifel haben.


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 20.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