Git Server mit HTTP unter Ubuntu konfigurieren

Configure Git Server With Http Ubuntu



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. Also lasst uns anfangen.

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:



$sudoapt-Update



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





Installieren Sie nun Git und Apache mit dem folgenden Befehl:



$sudogeeignetInstallieren gehenapache2 apache2-utils

Jetzt drücken UND 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:

$sudoa2enmodenvcgialiasumschreiben

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 /wo/www/gehen

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

$sudo nano /etc/Apache2/Seiten-verfügbar/git.conf

Geben Sie nun die folgenden Zeilen in die Konfigurationsdatei ein:

<VirtualHost*:80>
ServerAdmin-Webmaster@localhost

SetEnv GIT_PROJECT_ROOT<stark> /wo/www/gehenstark>
SetEnv GIT_HTTP_EXPORT_ALL
SkriptAlias/gehen/ /usr/lib/git-core/git-http-backend/

Alias/gehen /wo/www/gehen

<Verzeichnis/usr/lib/git-core>
Optionen +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride None
Fordern Sie alle gewährten
Verzeichnis>

Dokument Root/wo/www/html

<Verzeichnis/wo/www>
Optionen Indizes FollowSymLinks MultiViews
AllowOverride None
Fordern Sie alle gewährten
Verzeichnis>


Fehlerprotokoll$ {APACHE_LOG_DIR}/Fehlerprotokoll
LogLevel-Warnung
CustomLog$ {APACHE_LOG_DIR}/access.log kombiniert
VirtualHost>

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

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

$sudoa2dissite 000-default.conf

Die Standard-Site-Konfiguration sollte deaktiviert sein.

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

$sudoa2ensite git.conf

Die Git-Site-Konfiguration sollte aktiviert sein.

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

$sudosystemctl 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 beschloss ich, zu diesem Zweck ein Shell-Skript zu schreiben.

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

$sudo nano /usr/lokal/bin/git-create-repo.sh

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}.gehen'
CD '${GIT_DIR}/${REPO_NAME}.gehen'

git init --nur &> /Entwickler/Null
berührengit-daemon-export-ok
cpHaken/post-update.sample-Hooks/nach dem Update
git confighttp.receivepackwahr
git update-server-info
chown -Rfwww-daten: www-daten'${GIT_DIR}/${REPO_NAME}.gehen'
rauswerfen 'Git-Repository'${REPO_NAME}' erstellt in${GIT_DIR}/${REPO_NAME}.gehen'

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 UND und .

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

$sudo chmod+ x/usr/lokal/bin/git-create-repo.sh

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

$sudogit-create-repo.shPrüfung

Das Git-Repository Prüfung erstellt werden soll.

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

$ipzu

Wie Sie sehen, lautet die IP-Adresse in meinem Fall 192.168.21.208 . Bei dir wird es anders sein. Ersetzen Sie es von nun an durch Ihres.

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

$Git-Klonhttp://192.168.21.208/gehen/test.go

Das Git-Repository Prüfung sollte geklont werden.

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

$CDPrüfung/
$rauswerfen 'Hallo Welt' >Hallo
$git hinzufügen.
$git-commit -m 'erstes Commit'

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

$git pushUrsprung

Wie Sie sehen, 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/Seiten-verfügbar/git.conf

Fügen Sie nun den folgenden Abschnitt in die Konfigurationsdatei ein.

<LocationMatch/gehen/.*.gehen>
AuthType Basic
AuthName'Git-Verifizierung'
AuthUserFile/etc/Apache2/git.passwd
Gültiger Benutzer erforderlich
LocationMatch>

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 UND 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:

$sudohtpasswd-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:

$sudosystemctl 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/Seiten-verfügbar/git.conf

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

<Standort/gehen/test.go>
AuthType Basic
AuthName'Git-Verifizierung'
AuthUserFile/etc/Apache2/git.test.passwd
Gültiger Benutzer erforderlich
Standort>

<Standort/gehen/test2.git>
AuthType Basic
AuthName'Git-Verifizierung'
AuthUserFile/etc/Apache2/git.test2.passwd
Gültiger Benutzer erforderlich
Standort>

Für jedes Git-Repository Prüfung und test2 , zu Abschnitt definiert ist. 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 UND und .

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

$sudohtpasswd-C /etc/Apache2/git.test.passwd BENUTZERNAME
$sudohtpasswd-C /etc/Apache2/git.test2.passwd BENUTZERNAME

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

$sudosystemctl 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 Sie diesen Artikel gelesen haben.