Skonfiguruj serwer GIT z HTTP na Ubuntu

Skonfiguruj serwer GIT z HTTP na Ubuntu
Jeśli chcesz skonfigurować serwer GIT HTTP do pracy z repozytoriami GIT, ten artykuł jest dla Ciebie. W tym artykule pokażę, jak skonfigurować git Smart HTTP Server 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 go zainstalować w APT Package Manager.

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

Aktualizacja $ sudo apt

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

Teraz zainstaluj git i apache z następującym poleceniem:

$ sudo apt Zainstaluj git apache2 Apache2-Utils

Teraz naciśnij Y a następnie naciśnij Aby potwierdzić instalację.

Git i Apache powinny być zainstalowane.

Konfigurowanie serwera Apache HTTP dla GIT:

Teraz włącz Apache mod_env, mod_cgi, mod_alias I mod_rewrite moduły z następującym poleceniem:

$ sudo a2enmod env cGI pseudonim

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

Teraz utwórz nowy katalog /var/www/git za utrzymanie wszystkich repozytoriów GIT z następującym poleceniem:

$ sudo mkdir/var/www/git

Teraz utwórz nową konfigurację witryny Apache /etc/apache2/witryny-dostępny/git.conf dla git z następującym poleceniem:

$ sudo nano/etc/apache2/witryny-dostępny/git.conf

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


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

Opcje +execcgi -multiviews +SymLinksifownMatch
Bezwyznaniowe
Wymagać wszystkich przyznanych

DocumentRoot/var/www/html

Indeksy opcji obserwuje MultiViews
Bezwyznaniowe
Wymagać wszystkich przyznanych

ErrorLog $ apache_log_dir/error.dziennik
LOGLEVEL OSTRZEŻENIE
CustomLog $ apache_log_dir/access.Log łącznie

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

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

$ sudo a2dissite 000-default.conf

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

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

$ sudo a2ensite git.conf

Konfiguracja witryny GIT powinna być włączona.

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

$ sudo systemctl restart apache2

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

Najpierw utwórz nowy skrypt powłoki /usr/local/bin/git-create-repo.cii Z następującym poleceniem:

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

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

#!/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 - -bare &> /dev /null
Dotknij git-daemon-export-ok
Haczyki CP/post-update.próbki haczyków/post-update
Git Config Http.Otrzymaj Pack True
Git aktualizacja-serwer-info
chown -rf www-data: www-data "$ git_dir/$ repo_name.git "
echo "git repozytorium '$ repo_name' utworzone w $ git_dir/$ repo_name.git "

Po wpisaniu tych wierszy skrypt powłoki powinien wyglądać w następujący sposób. Teraz zapisz plik, naciskając + X śledzony przez Y I .

Teraz dodaj zgodę Wykonaj 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 korzeni 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.Test SH

Repozytorium GIT test należy utworzyć.

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

$ ip a

Jak widać, adres IP w moim przypadku jest 192.168.21.208. Będzie dla Ciebie inaczej. Wymień go od teraz.

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

$ git Clone http: // 192.168.21.208/git/test.git

Repozytorium GIT test należy sklonować.

Teraz dodajmy nowe zobowiązanie do test Repozytorium Git.

$ CD Test/
$ echo „hello świat”> hello
$ git add .
$ git commit -m „początkowe zatwierdzenie”

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

$ git push pochodzenie

Jak widać, zmiany są w porządku.

Konfigurowanie uwierzytelniania użytkownika:

W tej sekcji pokażę, jak skonfigurować uwierzytelnianie użytkownika na repozytoriach GIT na serwerze.

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

$ sudo nano/etc/apache2/witryny-dostępny/git.conf

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


Authtype Basic
AuthName „GIT weryfikacja”
Authuserfile/etc/apache2/git.Passwd
Wymagają ważnego użytkownika

Tutaj, /etc/apache2/git.Passwd to plik bazy danych użytkowników.

Ostateczny plik konfiguracyjny powinien wyglądać w następujący sposób. Teraz zapisz plik, naciskając + X śledzony przez Y I .

Teraz utwórz nowy plik bazy danych użytkowników /etc/apache2/git.Passwd 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 to samo hasło i naciśnij .

Do bazy danych należy dodać parę słów użytkownika.

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

$ sudo systemctl restart apache2

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

Po uwierzytelnieniu za pomocą nazwy użytkownika i hasła będziesz mógł uzyskać dostęp do repozytorium GIT.

Nawet gdy próbujesz pchnąć lub wyciągnąć z repozytorium GIT, zostaniesz również poproszony o nazwę użytkownika i hasło.

Po uwierzytelnianiu się pchanie/ciągnięcie będzie działać.

Możesz także ustawić różną bazę danych użytkowników dla różnych repozytoriów GIT. Może to być przydatne w projektach, w których wiele osób pracuje nad tym samym repozytorium Git.

Aby ustawić uwierzytelnianie GIT, po pierwsze, edytuj git.conf Plik konfiguracji witryny w następujący sposób:

$ sudo nano/etc/apache2/witryny-dostępny/git.conf

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


Authtype Basic
AuthName „GIT weryfikacja”
Authuserfile/etc/apache2/git.test.Passwd
Wymagają ważnego użytkownika


Authtype Basic
AuthName „GIT weryfikacja”
Authuserfile/etc/apache2/git.test2.Passwd
Wymagają ważnego użytkownika

Dla każdego repozytorium GIT test I test2, A Sekcja jest zdefiniowana. Dla każdego repozytorium GIT używany jest inny plik bazy danych użytkowników.

Ostateczny plik konfiguracyjny powinien wyglądać w następujący sposób. Teraz zapisz plik konfiguracyjny, naciskając + X śledzony przez Y I .

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

$ sudo htpasswd -c/etc/apache2/git.test.Passwd Nazwa użytkownika
$ sudo htpasswd -c/etc/apache2/git.test2.Passwd Nazwa użytkownika

Po zakończeniu 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 mogą do niego uzyskać dostęp.

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