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

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

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 auf Ubuntu 18.04 LTS (Bionic Beaver) installieren.

Anforderungen

  • Neuer Ubuntu 18.04-Server auf Ihrem System installiert.
  • Sudo-Benutzer mit Root-Rechten.
  • Eine statische IP-Adresse ist auf Ihrem Server konfiguriert, ich verwende in diesem Tutorial die IP 192.168.1.100.

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:

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/html/git;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

location ~ (/.*) {
    client_max_body_size 0; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
    auth_basic "Git Login"; # Whatever text will do.
    auth_basic_user_file "/var/www/html/git/htpasswd";
    include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
    fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT /var/www/html/git; # /var/www/git is the location of all of your git repositories.
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
    fastcgi_pass  unix:/var/run/fcgiwrap.socket; # Pass the request to 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:

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:

4 Erstellen Sie ein Git-Repository

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

Sie können ein Repository mit dem Namen hitesh.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 755 .

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- und SSH-Dienst zulassen, indem Sie den folgenden Befehl ausführen:

sudo ufw allow http
sudo ufw allow ssh

SSH wird für GIT nicht benötigt, aber Sie sollten es aktivieren, um Ihren Server über SSH verwalten zu können.

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 nun auf der Client-Seite fortfahren, um Git zu testen.

5 Git auf dem 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 "This is my first repository" > test1/repo1
echo "This is my second repository" > test2/repo2
echo "This is my third 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 "Add files and directories"

Sie sollten die folgende Ausgabe sehen:

[master 002fac9] Add files and directories
 3 files changed, 3 insertions(+)
 create mode 100644 repo1
 create mode 100644 repo2
 create mode 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:

Password for 'http://[email protected]': 
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (5/5), 422 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To 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 dem Remote-System klonen:

git clone [email protected]:/var/www/html/git/hitesh.git

Sie sollten die folgende Ausgabe sehen:

Cloning into 'hitesh'...
[email protected]'s password: 
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (3/3), done.
Receiving objects: 100% (8/8), 598 bytes | 0 bytes/s, done.
remote: Total 8 (delta 0), reused 0 (delta 0)
Checking connectivity... done.

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

cd hitesh
tree

Sie sollten die folgende Ausgabe sehen:

.
|-- test1
|   `-- repo1
|-- test2
|   `-- repo2
`-- test3
    `-- repo3

3 directories, 3 files

Als VM herunterladen

Dieses Tutorial ist als gebrauchsfertiges Image der virtuellen Maschine im ovf/ova-Format verfügbar, das mit VMWare und Virtualbox kompatibel ist. Das Image der virtuellen Maschine verwendet die folgenden Anmeldedaten:

SSH-/Shell-Anmeldung

Benutzername:administrator
Passwort:howtoforge

Dieser Benutzer hat sudo-Rechte.

GIT-Anmeldung

Benutzername: hitesh
Passwort:howtoforge

Die IP der VM ist 192.168.1.100, sie kann in der Datei /etc/netplan/01-netcfg.yaml geändert werden. Bitte ändern Sie alle oben genannten Passwörter, um die virtuelle Maschine zu sichern.

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
  • Git

Ubuntu
  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 HTTP-Git-Server mit Nginx unter Debian 11

  4. So installieren Sie RabbitMQ Server auf Ubuntu 18.04 &16.04 LTS

  5. So installieren Sie Gitlab Server auf Ubuntu 18.04 &16.04 LTS

So installieren Sie WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie RabbitMQ Server auf Ubuntu 18.04 LTS

So installieren Sie WordPress mit Nginx auf Ubuntu

So installieren Sie Nginx unter Ubuntu 18.04 LTS

So installieren Sie Git unter Ubuntu 20.04 LTS

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