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.confTeraz 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.confDomyślna konfiguracja witryny powinna być wyłączona.
Teraz włącz konfigurację witryny Git za pomocą następującego polecenia:
$sudoa2ensite git.confKonfiguracja witryny Git powinna być włączona.
Teraz uruchom ponownie serwer Apache HTTP za pomocą następującego polecenia:
$sudosystemctl uruchom ponownie Apache2Aby 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.shTeraz wpisz następujące wiersze kodu w skrypcie powłoki.
#!/kosz/bashGIT_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.shTeraz 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.shtestRepozytorium Git test powinny zostać stworzone.
Aby uzyskać dostęp do repozytorium Git, potrzebujesz adresu IP serwera HTTP Git.
$IPdoJak 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.goRepozytorium 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ątekJak 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.confTeraz 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 shovonTeraz 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 Apache2Teraz, 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.confTeraz 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 Apache2Teraz 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.