Skonfiguruj serwer Git z HTTP na Ubuntu

Configure Git Server With Http Ubuntu



Jeśli chcesz skonfigurować serwer HTTP Git do prywatnej pracy z repozytoriami Git, ten artykuł jest dla Ciebie. W tym artykule pokażę, jak skonfigurować serwer Git Smart HTTP na Ubuntu z serwerem Apache HTTP. Więc zacznijmy.

Pakiety Git i Apache są dostępne w oficjalnym repozytorium pakietów Ubuntu. Możesz więc łatwo zainstalować go za pomocą menedżera pakietów APT.







Najpierw zaktualizuj pamięć podręczną repozytorium pakietów APT za pomocą następującego polecenia:



$sudotrafna aktualizacja



Pamięć podręczna repozytorium pakietów APT powinna zostać zaktualizowana.





Teraz zainstaluj Git i Apache za pomocą następującego polecenia:



$sudotrafnyzainstalować wybrać sięapache2 apache2-utils

Teraz naciśnij ORAZ a następnie naciśnij aby potwierdzić instalację.

Należy zainstalować Git i Apache.

Konfigurowanie serwera HTTP Apache dla Git:

Teraz włącz Apache mod_env , mod_cgi , mod_alias oraz mod_rewrite moduły za pomocą następującego polecenia:

$sudoa2enmodzazdrościćcgiAliasprzepisać

Wymagane moduły Apache powinny być włączone.

Teraz utwórz nowy katalog /var/www/git do przechowywania wszystkich repozytoriów Git za pomocą następującego polecenia:

$sudo mkdir /gdzie/www/wybrać się

Teraz utwórz nową konfigurację witryny Apache /etc/apache2/sites-available/git.conf dla Git za pomocą następującego polecenia:

$sudo nano /itp/Apache2/strony-dostępne/git.conf

Teraz wpisz następujące wiersze w pliku konfiguracyjnym:

<Wirtualny Host*:80>
Webmaster administratora serwera@Lokalny Gospodarz

SetEnv GIT_PROJECT_ROOT<silny> /gdzie/www/wybrać sięsilny>
UstawEnv GIT_HTTP_EXPORT_ALL
Alias ​​skryptu/wybrać się/ /usr/lib/git-core/git-http-backend/

Alias/wybrać się /gdzie/www/wybrać się

<Informator/usr/lib/git-core>
Opcje +ExecCGI-Wiele widoków+SymLinksJeśliWłaścicielDopasuj
Zezwól na zastąpienie Brak
Wymagaj wszystkich przyznanych
Informator>

Dokument główny/gdzie/www/html

<Informator/gdzie/www>
Opcje Indeksy ŚledźSymLinks MultiViews
Zezwól na zastąpienie Brak
Wymagaj wszystkich przyznanych
Informator>


Dziennik błędów$ {APACHE_LOG_DIR}/error.log
Ostrzeżenie o poziomie dziennika
Dziennik niestandardowy$ {APACHE_LOG_DIR}/access.log połączone
Wirtualny Host>

Ostateczny plik konfiguracyjny wygląda następująco. Teraz zapisz plik konfiguracyjny, naciskając + x śledzony przez ORAZ oraz .

Teraz wyłącz domyślną konfigurację witryny Apache za pomocą następującego polecenia:

$sudoa2dissite 000-default.conf

Domyślna konfiguracja witryny powinna być wyłączona.

Teraz włącz konfigurację witryny Git za pomocą następującego polecenia:

$sudoa2ensite git.conf

Konfiguracja witryny Git powinna być włączona.

Teraz uruchom ponownie serwer Apache HTTP za pomocą następującego polecenia:

$sudosystemctl uruchom ponownie Apache2

Aby załadować nowe repozytorium Git dostępne przez serwer HTTP Apache, będziesz musiał uruchomić kilka poleceń. Nie chcesz robić w kółko tego samego tylko po to, aby utworzyć nowe repozytorium Git. Postanowiłem więc napisać w tym celu skrypt powłoki.

Najpierw utwórz nowy skrypt powłoki /usr/local/bin/git-create-repo.sh za pomocą następującego polecenia:

$sudo nano /usr/lokalny/jestem/git-create-repo.sh

Teraz wpisz następujące wiersze kodu w skrypcie powłoki.

#!/kosz/bash

GIT_DIR='/var/www/git'
REPO_NAME=1 zł

mkdir -P '${GIT_DIR}/${REPO_NAME}.wybrać się'
Płyta CD '${GIT_DIR}/${REPO_NAME}.wybrać się'

git init --właśnie &> /dev/zero
dotykaćgit-daemon-export-ok
cphaczyki/post-update.sample hooki/po aktualizacji
konfiguracja githttp.receivepackprawda
git aktualizacja-informacje-serwer
chown -Rfwww-dane: www-dane'${GIT_DIR}/${REPO_NAME}.wybrać się'
wyrzucił 'Repozytorium Git'${REPO_NAME}' Utworzony w${GIT_DIR}/${REPO_NAME}.wybrać się'

Po wpisaniu tych linii skrypt powłoki powinien wyglądać następująco. Teraz zapisz plik, naciskając + x śledzony przez ORAZ oraz .

Teraz dodaj uprawnienie do wykonywania do skryptu powłoki za pomocą następującego polecenia:

$sudo chmod+ x/usr/lokalny/jestem/git-create-repo.sh

Teraz utwórz nowe repozytorium Git test w katalogu głównym projektu Git /var/www/git używając git-create-repo.sh skrypt powłoki w następujący sposób:

$sudogit-create-repo.shtest

Repozytorium Git test powinny zostać stworzone.

Aby uzyskać dostęp do repozytorium Git, potrzebujesz adresu IP serwera HTTP Git.

$IPdo

Jak widać adres IP w moim przypadku to 192.168.21.208 . Dla ciebie będzie inaczej. Od teraz zastąp go swoim.

Teraz możesz sklonować test Repozytorium Git w następujący sposób:

$git klonhttp://192.168.21.208/wybrać się/test.go

Repozytorium Git test powinny być sklonowane.

Teraz dodajmy nowe zatwierdzenie do test Repozytorium Git.

$Płyta CDtest/
$wyrzucił 'Witaj świecie' >dzień dobry
$git dodaj.
$git commit -m „wstępne zatwierdzenie”

Teraz prześlij zmiany do test Repozytorium Git na serwerze w następujący sposób:

$git pushpoczątek

Jak widać, zmiany są przesyłane w porządku.

Konfiguracja uwierzytelniania użytkownika:

W tej sekcji pokażę, jak skonfigurować uwierzytelnianie użytkowników w repozytoriach Git na serwerze.

Najpierw edytuj git.conf plik konfiguracyjny witryny w następujący sposób:

$sudo nano /itp/Apache2/strony-dostępne/git.conf

Teraz dodaj następującą sekcję w pliku konfiguracyjnym.

<LokalizacjaDopasuj/wybrać się/.*.wybrać się>
Podstawowy typ uwierzytelniania
Nazwa Uwierzytelniania„Weryfikacja Git”
AuthUserFile/itp/Apache2/git.passwd
Wymagaj prawidłowego użytkownika
LokalizacjaDopasuj>

Tutaj, /etc/apache2/git.passwd to plik bazy danych użytkownika.

Ostateczny plik konfiguracyjny powinien wyglądać następująco. Teraz zapisz plik, naciskając + x śledzony przez ORAZ oraz .

Teraz utwórz nowy plik bazy danych użytkownika /etc/apache2/git.passwd i dodaj nowego użytkownika (powiedzmy shovon ) do pliku bazy danych w następujący sposób:

$sudohtpasswd-C /itp/Apache2/git.passwd shovon

Teraz wpisz nowe hasło dla nowego użytkownika i naciśnij .

Wpisz ponownie to samo hasło i naciśnij .

Parę użytkownik-hasło należy dodać do bazy danych.

Teraz uruchom ponownie serwer Apache HTTP za pomocą następującego polecenia:

$sudosystemctl uruchom ponownie Apache2

Teraz, jeśli spróbujesz sklonować test repozytorium ponownie, zostaniesz poproszony o uwierzytelnienie, jak widać na poniższym zrzucie ekranu.

Po uwierzytelnieniu się przy użyciu nazwy użytkownika i hasła będziesz mieć dostęp do repozytorium Git.

Nawet podczas próby push lub pull z repozytorium Git zostaniesz również poproszony o podanie nazwy użytkownika i hasła.

Po uwierzytelnieniu będzie działać push/pull.

Możesz także ustawić różne bazy danych użytkowników dla różnych repozytoriów Git. Może to być przydatne w przypadku projektów, w których wiele osób pracuje razem nad tym samym repozytorium Git.

Aby ustawić uwierzytelnianie oparte na repozytorium Git, najpierw edytuj git.conf plik konfiguracyjny witryny w następujący sposób:

$sudo nano /itp/Apache2/strony-dostępne/git.conf

Teraz dodaj następujące wiersze w pliku konfiguracyjnym.

<Lokalizacja/wybrać się/test.go>
Podstawowy typ uwierzytelniania
Nazwa Uwierzytelniania„Weryfikacja Git”
AuthUserFile/itp/Apache2/git.test.passwd
Wymagaj prawidłowego użytkownika
Lokalizacja>

<Lokalizacja/wybrać się/test2.git>
Podstawowy typ uwierzytelniania
Nazwa Uwierzytelniania„Weryfikacja Git”
AuthUserFile/itp/Apache2/git.test2.passwd
Wymagaj prawidłowego użytkownika
Lokalizacja>

Dla każdego repozytorium Git test oraz test2 , do sekcja jest zdefiniowana. Dla każdego repozytorium Git używany jest inny plik bazy danych użytkownika.

Ostateczny plik konfiguracyjny powinien wyglądać następująco. Teraz zapisz plik konfiguracyjny, naciskając + x śledzony przez ORAZ oraz .

Teraz możesz utworzyć wymagane bazy danych użytkowników w następujący sposób:

$sudohtpasswd-C /itp/Apache2/git.test.passwd NAZWA UŻYTKOWNIKA
$sudohtpasswd-C /itp/Apache2/git.test2.passwd NAZWA UŻYTKOWNIKA

Gdy skończysz, uruchom ponownie serwer Apache HTTP za pomocą następującego polecenia:

$sudosystemctl uruchom ponownie Apache2

Teraz każde repozytorium Git powinno mieć własny zestaw użytkowników, którzy mają do niego dostęp.

W ten sposób konfigurujesz Git Server z Apache HTTP Server na Ubuntu. Dziękuję za przeczytanie tego artykułu.