Konfigurieren Sie den Git -Server mit HTTP auf Ubuntu

Konfigurieren Sie den Git -Server mit HTTP auf Ubuntu
Wenn Sie einen Git -HTTP -Server für die Arbeit mit Git -Repositories privat einrichten möchten, ist dieser Artikel für Sie geeignet. In diesem Artikel zeige ich Ihnen, wie Sie einen Git Smart HTTP -Server auf Ubuntu mit Apache HTTP -Server konfigurieren können. Also lasst uns anfangen.

Installieren von Git- und Apache -HTTP -Server:

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

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

$ sudo APT Update

Der APT -Paket -Repository -Cache sollte aktualisiert werden.

Installieren Sie nun Git und Apache mit dem folgenden Befehl:

$ sudo apt installieren Git apache2 apache2-utils

Jetzt drücken Y und dann drücken Sie Um die Installation zu bestätigen.

Git und Apache sollten installiert werden.

Konfigurieren von Apache HTTP Server für Git:

Aktivieren Sie nun Apache mod_env, mod_cgi, mod_alias Und mod_rewrite Module mit dem folgenden Befehl:

$ sudo a2enmod enc cgi alias umschreiben

Die erforderlichen Apache -Module sollten aktiviert sein.

Erstellen Sie nun ein neues Verzeichnis /var/www/git Damit alle Git -Repositories mit dem folgenden Befehl beibehalten werden:

$ sudo mkdir/var/www/git

Erstellen Sie nun eine neue Apache -Site -Konfiguration /etc/apache2/sites-verfügbare/git.Conf Für GIT mit dem folgenden Befehl:

$ sudo nano/etc/apache2/sites-verfügbare/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 +execgi -multiviews +symlinkSifownermatch
NichtsRide keine
Alle gewährt

DocumentRoot/var/www/html

Optionsindizes folgt den Multiviews
NichtsRide keine
Alle gewährt

Fehlerlog $ apache_log_dir/fehler.Protokoll
Loglevel warnen
CustomLog $ apache_log_dir/Access.log kombiniert

Die endgültige Konfigurationsdatei sieht wie folgt aus. Speichern Sie nun die Konfigurationsdatei durch Drücken + X gefolgt von Y Und .

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

$ sudo a2dissit 000 Default.Conf

Die Standard -Site -Konfiguration sollte deaktiviert werden.

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

$ sudo a2ensit git.Conf

Die Git -Site -Konfiguration sollte aktiviert sein.

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

$ sudo systemctl starten Sie Apache2 neu

Um ein neues Git -Repository zu starten, 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, für diesen Zweck ein Shell -Skript zu schreiben.

Erstellen Sie zunächst ein neues Shell -Skript /usr/local/bin/git-create-repo.Sch mit dem folgenden Befehl:

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

Geben Sie nun die folgenden Codes -Zeilen im Shell -Skript ein.

#!/Bin/Bash
Git_dir = "/var/www/git"
Repo_name = $ 1
mkdir -p "$ git_dir/$ repo_name.Git "
CD "$ git_dir/$ repo_name.Git "
git init -bar &> /dev /null
Berühren Sie Git-Daemon-Export-OK
CP-Hooks/Post-Update.Probenhaken/Post-Update
GIT -Konfiguration HTTP.empfangenpack true
Git Update-Server-Info
Chown -rf www-data: www-data "$ git_dir/$ repo_name.Git "
echo "git repository '$ repo_name' erstellt in $ git_dir/$ repo_name.Git "

Sobald Sie diese Zeilen eingeben, sollte das Shell -Skript wie folgt aussehen. Speichern Sie nun die Datei durch Drücken + X gefolgt von Y Und .

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

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

Erstellen Sie nun ein neues Git -Repository prüfen in der Git -Projektwurzel /var/www/git Verwendung der Git-Create-Repo.Sch Shell -Skript wie folgt:

$ sudo git-create-repo.SH -Test

Das Git -Repository prüfen sollte erstellt werden.

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

$ ip a

Wie Sie sehen können, lautet die IP -Adresse in meinem Fall 192.168.21.208. Es wird für Sie anders sein. Ersetzen Sie es von nun an durch Ihre.

Jetzt können Sie die klonen prüfen Git -Repository wie folgt:

$ git klone http: // 192.168.21.208/Git/Test.Git

Das Git -Repository prüfen sollte geklont werden.

Lassen Sie uns nun einen neuen Verpflichtung zum Verpflegung hinzufügen prüfen Git -Repository.

$ cd Test/
$ echo "Hallo Welt"> Hallo
$ git add .
$ git Commit -m 'Erstes Commit' '

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

$ Git Push Origin

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

Konfigurieren der Benutzerauthentifizierung:

In diesem Abschnitt zeige ich Ihnen, wie Sie die Benutzerauthentifizierung auf den Git -Repositories auf dem Server konfigurieren können.

Bearbeiten Sie zunächst die Git.Conf Site -Konfigurationsdatei wie folgt:

$ sudo nano/etc/apache2/sites-verfügbare/git.Conf

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


AUTHTYPE BASIC
AUTHNAME "GIT -Überprüfung"
AuthuserFile/etc/apache2/git.Passwd
Erfordernder gültiger Benutzer

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

Die endgültige Konfigurationsdatei sollte wie folgt aussehen. Speichern Sie nun die Datei durch Drücken + X gefolgt von Y Und .

Erstellen Sie nun eine neue Benutzerdatenbankdatei /etc/apache2/git.Passwd und fügen Sie einen neuen Benutzer hinzu (sagen wir, 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 nun .

Geben Sie das gleiche Passwort weiter und drücken Sie .

Das Benutzerpasswortpaar sollte der Datenbank hinzugefügt werden.

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

$ sudo systemctl starten Sie Apache2 neu

Wenn Sie jetzt versuchen, die zu klonen prüfen Repository erneut werden Sie gebeten, sich zu authentifizieren, wie Sie im Screenshot unten sehen können.

Sobald Sie mithilfe des Benutzernamens und des Kennworts authentifiziert sind, können Sie auf das Git -Repository zugreifen.

Selbst wenn Sie versuchen, das Git -Repository zu schieben oder zu ziehen, werden Sie auch nach dem Benutzernamen und dem Passwort gefragt.

Sobald Sie sich authentifizieren, funktioniert Push/Pull.

Sie können auch verschiedene Benutzerdatenbank für verschiedene Git -Repositories festlegen. Dies kann für Projekte nützlich sein, bei denen viele Menschen an demselben Git -Repository zusammenarbeiten.

Um die Git-Repository-Authentifizierung festzulegen, bearbeiten Sie zunächst die Git.Conf Site -Konfigurationsdatei wie folgt:

$ sudo nano/etc/apache2/sites-verfügbare/git.Conf

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


AUTHTYPE BASIC
AUTHNAME "GIT -Überprüfung"
AuthuserFile/etc/apache2/git.prüfen.Passwd
Erfordernder gültiger Benutzer


AUTHTYPE BASIC
AUTHNAME "GIT -Überprüfung"
AuthuserFile/etc/apache2/git.Test2.Passwd
Erfordernder gültiger Benutzer

Für jedes Git -Repository prüfen Und Test2, A 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 durch Drücken + X gefolgt von Y Und .

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

$ sudo htpasswd -c/etc/apache2/git.prüfen.Passwd Benutzername
$ sudo htpasswd -c/etc/apache2/git.Test2.Passwd Benutzername

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

$ sudo systemctl starten Sie Apache2 neu

Jetzt sollte jedes Git -Repository einen eigenen Benutzer haben, der darauf zugreifen kann.

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