Git

Git Server mit HTTP unter Ubuntu konfigurieren

Git Server mit HTTP unter Ubuntu konfigurieren
Wenn Sie einen Git-HTTP-Server einrichten möchten, um privat mit Git-Repositorys zu arbeiten, dann ist dieser Artikel genau das Richtige für Sie.  In diesem Artikel zeige ich Ihnen, wie Sie einen Git Smart HTTP-Server unter Ubuntu mit Apache HTTP-Server konfigurieren configure. Also lasst uns anfangen.

Git und Apache HTTP-Server installieren:

Git- und Apache-Pakete sind im offiziellen Paket-Repository von Ubuntu verfügbar. Sie können es also einfach mit dem APT-Paketmanager installieren.

Aktualisieren Sie zunächst den Cache des APT-Paket-Repositorys mit dem folgenden Befehl:

$ sudo apt-Update

Der Cache des APT-Paket-Repositorys sollte aktualisiert werden.

Installieren Sie nun Git und Apache mit dem folgenden Befehl:

$ sudo apt install git apache2 apache2-utils

Jetzt drücken Ja und drücke dann um die Installation zu bestätigen.

Git und Apache sollten installiert sein.

Konfigurieren des Apache HTTP-Servers für Git:

Aktivieren Sie nun Apache mod_env, mod_cgi, mod_alias und mod_rewrite Module mit folgendem Befehl:

$ sudo a2enmod env cgi alias rewrite

Die erforderlichen Apache-Module sollten aktiviert sein.

Erstellen Sie nun ein neues Verzeichnis /var/www/git um alle Git-Repositorys mit dem folgenden Befehl zu behalten:

$ sudo mkdir /var/www/git

Erstellen Sie nun eine neue Apache-Site-Konfiguration /etc/apache2/sites-available/git.conf für Git mit folgendem Befehl:

$ sudo nano /etc/apache2/sites-available/git.conf

Geben Sie nun die folgenden Zeilen in die Konfigurationsdatei ein:


ServerAdmin webmaster@localhost
 
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/git/ /usr/lib/git-core/git-http-backend/
 
Alias ​​/git /var/www/git
 

Optionen +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride None
Fordern Sie alle gewährten

 
DocumentRoot /var/www/html
 

Optionen Indizes FollowSymLinks MultiViews
AllowOverride None
Fordern Sie alle gewährten

 
 
ErrorLog $APACHE_LOG_DIR/Fehler.Log
LogLevel-Warnung
CustomLog $APACHE_LOG_DIR/Zugriff.Protokoll kombiniert

Die endgültige Konfigurationsdatei sieht wie folgt aus. Speichern Sie nun die Konfigurationsdatei, indem Sie drücken + X gefolgt von Ja und .

Deaktivieren Sie nun die Standardkonfiguration der Apache-Site mit dem folgenden Befehl:

$ sudo a2dissite 000-default.conf

Die Standard-Site-Konfiguration sollte deaktiviert sein.

Aktivieren Sie nun die Git-Site-Konfiguration mit dem folgenden Befehl:

$ sudo a2ensite git.conf

Die Git-Site-Konfiguration sollte aktiviert sein.

Starten Sie nun den Apache HTTP-Server mit dem folgenden Befehl neu:

$ sudo systemctl Neustart von Apache2

Um ein neues Git-Repository zu booten, auf das über den Apache HTTP-Server zugegriffen werden kann, müssen Sie einige Befehle ausführen. Sie möchten nicht immer wieder dasselbe tun, nur um ein neues Git-Repository zu erstellen. Also habe ich beschlossen, zu diesem Zweck ein Shell-Skript zu schreiben.

Erstellen Sie zuerst ein neues Shell-Skript /usr/local/bin/git-create-repo.Sch mit folgendem Befehl:

$ sudo nano /usr/local/bin/git-create-repo.Sch

Geben Sie nun die folgenden Codezeilen in das Shell-Skript ein.

#!/bin/bash
 
GIT_DIR="/var/www/git"
REPO_NAME=$1
 
mkdir -p "$GIT_DIR/$REPO_NAME.Scheiße"
cd "$GIT_DIR/$REPO_NAME.Scheiße"
 
git init --bare &> /dev/null
touch git-daemon-export-ok
cp-Hooks/Post-Update.Beispiel-Hooks/Post-Update
git config http.Empfangspaket wahr
git update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.Scheiße"
echo "Git-Repository '$REPO_NAME' erstellt in $GIT_DIR/$REPO_NAME.Scheiße"

Nachdem Sie diese Zeilen eingegeben haben, sollte das Shell-Skript wie folgt aussehen:. Speichern Sie nun die Datei, indem Sie drücken + X gefolgt von Ja und .

Fügen Sie nun mit dem folgenden Befehl die Ausführungsberechtigung zum Shell-Skript hinzu:

$ sudo chmod +x /usr/local/bin/git-create-repo.Sch

Erstellen Sie nun ein neues Git-Repository Prüfung im Git-Projektstamm /var/www/git Verwendung der git-create-repo.Sch Shell-Skript wie folgt:

$ sudo git-create-repo.sh test

Das Git-Repository Prüfung sollte erstellt werden.

Um auf das Git-Repository zuzugreifen, benötigen Sie die IP-Adresse des Git-HTTP-Servers.

$ ip a

Wie Sie sehen, lautet die IP-Adresse in meinem Fall case 192.168.21.208. Bei dir wird es anders sein. Ersetze es ab jetzt durch deins.

Jetzt können Sie die klonen Prüfung Git-Repository wie folgt:

$ git-Klon http://192.168.21.208/git/test.git

Das Git-Repository Prüfung sollte geklont werden.

Jetzt fügen wir dem einen neuen Commit hinzu Prüfung Git-Repository.

$ CD-Test/
$ echo "Hallo Welt" > hallo
$ git hinzufügen .
$ git commit -m 'erster Commit'

Laden Sie nun die Änderungen in die Prüfung Git-Repository auf dem Server wie folgt:

$ git push origin

Wie Sie sehen können, werden die Änderungen problemlos hochgeladen.

Konfigurieren der Benutzerauthentifizierung:

In diesem Abschnitt zeige ich Ihnen, wie Sie die Benutzerauthentifizierung in den Git-Repositorys auf dem Server konfigurieren.

Bearbeiten Sie zuerst die git.conf Site-Konfigurationsdatei wie folgt:

$ sudo nano /etc/apache2/sites-available/git.conf

Fügen Sie nun den folgenden Abschnitt in der Konfigurationsdatei hinzu.


AuthType Basic
AuthName "Git-Verifizierung"
AuthUserFile /etc/apache2/git.passwd
Gültiger Benutzer erforderlich

Hier, /etc/apache2/git.passwd ist die Benutzerdatenbankdatei.

Die endgültige Konfigurationsdatei sollte wie folgt aussehen. Speichern Sie nun die Datei, indem Sie drücken + X gefolgt von Ja und .

Erstellen Sie nun eine neue Benutzerdatenbankdatei /etc/apache2/git.passwd und füge einen neuen Benutzer hinzu (sagen wir shovon) in die Datenbankdatei wie folgt:

$ sudo htpasswd -c /etc/apache2/git.passwd shovon

Geben Sie nun ein neues Passwort für den neuen Benutzer ein und drücken Sie .

Geben Sie das gleiche Passwort erneut ein und drücken Sie .

Das Benutzer-Passwort-Paar sollte der Datenbank hinzugefügt werden.

Starten Sie nun den Apache HTTP-Server mit dem folgenden Befehl neu:

$ sudo systemctl Neustart von Apache2

Wenn Sie jetzt versuchen, die zu klonen Prüfung Repository erneut, werden Sie aufgefordert, sich zu authentifizieren, wie Sie im Screenshot unten sehen können.

Sobald Sie sich mit Benutzername und Passwort authentifiziert haben, können Sie auf das Git-Repository zugreifen.

Selbst wenn Sie versuchen, aus dem Git-Repository zu pushen oder zu ziehen, werden Sie auch nach Benutzername und Passwort gefragt.

Sobald Sie sich authentifiziert haben, funktioniert Push/Pull.

Sie können auch unterschiedliche Benutzerdatenbanken für verschiedene Git-Repositorys festlegen. Dies kann für Projekte nützlich sein, in denen viele Leute zusammen an demselben Git-Repository arbeiten.

Um die Git-Repository-Authentifizierung einzurichten, bearbeiten Sie zuerst die git.conf Site-Konfigurationsdatei wie folgt:

$ sudo nano /etc/apache2/sites-available/git.conf

Fügen Sie nun die folgenden Zeilen in die Konfigurationsdatei ein.


AuthType Basic
AuthName "Git-Verifizierung"
AuthUserFile /etc/apache2/git.Prüfung.passwd
Gültiger Benutzer erforderlich

 

AuthType Basic
AuthName "Git-Verifizierung"
AuthUserFile /etc/apache2/git.test2.passwd
Gültiger Benutzer erforderlich

Für jedes Git-Repository Prüfung und test2, ein Abschnitt ist definiert. Für jedes Git-Repository wird eine andere Benutzerdatenbankdatei verwendet.

Die endgültige Konfigurationsdatei sollte wie folgt aussehen. Speichern Sie nun die Konfigurationsdatei, indem Sie drücken + X gefolgt von Ja und .

Nun können Sie die erforderlichen Benutzerdatenbanken wie folgt erstellen:

$ sudo htpasswd -c /etc/apache2/git.Prüfung.passwd BENUTZERNAME
$ sudo htpasswd -c /etc/apache2/git.test2.passwd BENUTZERNAME

Wenn Sie fertig sind, starten Sie den Apache HTTP-Server mit dem folgenden Befehl neu:

$ sudo systemctl Neustart von Apache2

Jetzt sollte jedes Git-Repository seine eigenen Benutzer haben, die darauf zugreifen können.

So konfigurieren Sie Git Server mit Apache HTTP Server unter Ubuntu. Danke, dass du diesen Artikel gelesen hast.

OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...