Gita

Skonfiguruj serwer Git z HTTP na Ubuntu

Skonfiguruj serwer Git z HTTP na 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.

Instalowanie serwera Git i Apache HTTP:

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:

$ sudo apt aktualizacja

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

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

$ sudo apt install git apache2 apache2-utils

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

Powinny być zainstalowane Git i Apache.

Konfigurowanie serwera HTTP Apache dla Git:

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

$ sudo a2enmod env cgi alias przepisać

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 /var/www/git

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

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

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


Administrator serwera webmaster@localhost
 
SetEnv GIT_PROJECT_ROOT /var/www/git
Ustaw środowisko GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/git/ /usr/lib/git-core/git-http-backend/
 
Alias ​​/git /var/www/git
 

Opcje +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Zezwól na zastąpienie Brak
Wymagaj wszystkich przyznanych

 
Katalog główny dokumentu /var/www/html
 

Opcje Indeksy ŚledźSymLinks MultiViews
Zezwól na zastąpienie Brak
Wymagaj wszystkich przyznanych

 
 
Dziennik błędów $APACHE_LOG_DIR/błąd.log
Ostrzeżenie o poziomie dziennika
Dziennik niestandardowy $APACHE_LOG_DIR/dostęp.log połączony

Ostateczny plik konfiguracyjny wygląda następująco. Teraz zapisz plik konfiguracyjny, naciskając + X śledzony przez Tak i .

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

$ sudo a2dissite 000-default.konf

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

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

$ sudo a2ensite git.konf

Konfiguracja witryny Git powinna być włączona.

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

$ sudo systemctl restart apache2

Aby załadować nowe repozytorium Git dostępne przez serwer Apache HTTP, będziesz musiał uruchomić kilka poleceń. Nie chcesz robić w kółko tego samego tylko po to, by stworzyć 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.cii za pomocą następującego polecenia:

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

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

#!/bin/bash
 
GIT_DIR="/var/www/git"
REPO_NAME=$1
 
mkdir -p "$GIT_DIR/$REPO_NAME.głupek"
płyta CD „$GIT_DIR/$REPO_NAME.głupek"
 
git init --bare &> /dev/null
dotknij git-daemon-export-ok
cp hooks/po aktualizacji.przykładowe hooki/po aktualizacji
konfiguracja git http.pakiet odbiorczy prawda
git aktualizacja-informacje-serwer
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.głupek"
echo "Repozytorium Git '$REPO_NAME' utworzone w $GIT_DIR/$REPO_NAME.głupek"

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

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

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

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

$ sudo git-create-repo.sh test

Repozytorium Git test powinno być stworzone.

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

$ ip a

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 klon http://192.168.21.208/git/test.git

Repozytorium Git test powinien być sklonowany.

Teraz dodajmy nowe zatwierdzenie do test Repozytorium Git.

$ test CD/
$ echo "Witaj świecie" > cześć
$ git dodaj .
$ git commit -m 'początkowe zatwierdzenie'

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

$ git push origin

Jak widać, zmiany zostały przesłane w porządku just.

Konfiguracja uwierzytelniania użytkownika:

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

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

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

Teraz dodaj następującą sekcję do pliku konfiguracyjnego.


Podstawowy typ uwierzytelniania
AuthName „Weryfikacja Git”
AuthUserFile /etc/apache2/git.hasło
Wymagaj prawidłowego użytkownika

Tutaj, /etc/apache2/git.hasło to plik bazy danych użytkownika.

Ostateczny plik konfiguracyjny powinien wyglądać następująco. Teraz zapisz plik, naciskając + X śledzony przez Tak i .

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

$ sudo htpasswd -c /etc/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:

$ sudo systemctl restart apache2

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

Po uwierzytelnieniu przy użyciu nazwy użytkownika i hasła będziesz mógł uzyskać dostęp do repozytorium Git.

Nawet jeśli spróbujesz push lub pull z repozytorium Git, zostaniesz również poproszony o podanie nazwy użytkownika i hasła.

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

Możesz także ustawić inną bazę 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.konf plik konfiguracyjny witryny w następujący sposób:

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

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


Podstawowy typ uwierzytelniania
AuthName „Weryfikacja Git”
AuthUserFile /etc/apache2/git.test.hasło
Wymagaj prawidłowego użytkownika

 

Podstawowy typ uwierzytelniania
AuthName „Weryfikacja Git”
AuthUserFile /etc/apache2/git.test2.hasło
Wymagaj prawidłowego użytkownika

Dla każdego repozytorium Git test i test2, za 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 Tak i .

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

$ sudo htpasswd -c /etc/apache2/git.test.hasło NAZWA UŻYTKOWNIKA
$ sudo htpasswd -c /etc/apache2/git.test2.hasło NAZWA UŻYTKOWNIKA

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

$ sudo systemctl restart apache2

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

Tak więc konfigurujesz Git Server z Apache HTTP Server na Ubuntu. Dziękujemy za przeczytanie tego artykułu.

Gry Vulkan for Linux Users
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
Gry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
Gry OpenTTD Tutorial
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...