Instalowanie serwera Git i Apache HTTP:
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów CentOS 8 za pomocą następującego polecenia:
$ sudo dnf makecache
Teraz zainstaluj Git, serwer Apache HTTP i narzędzia Apache za pomocą następującego polecenia:
$ sudo dnf zainstaluj git httpd httpd-tools
Teraz naciśnij Tak a następnie naciśnij
Należy zainstalować Git, Apache i wymagane narzędzia Apache.
Konfiguracja serwera Apache HTTP:
W tej sekcji pokażę, jak skonfigurować serwer Apache do dostępu do repozytoriów Git przez protokół HTTP.
Najpierw utwórz nowy plik konfiguracyjny /etc/httpd/conf.d/git.konf za pomocą następującego polecenia:
$ sudo vi /etc/httpd/conf.d/git.konf
Teraz dodaj następujące wiersze do pliku konfiguracyjnego /etc/httpd/conf.d/git.konf:
SetEnv GIT_PROJECT_ROOT /var/www/git
Ustaw środowisko GIT_HTTP_EXPORT_ALL
Katalog główny dokumentu /var/www/git
ScriptAlias / /usr/libexec/git-core/git-http-backend/
Opcje +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Zezwól na zastąpienie Brak
Wymagaj wszystkich przyznanych
Dav On
Opcje Indeksy ŚledźSymLinks
Zezwól na zastąpienie Brak
Wymagaj wszystkich przyznanych
Ostateczny plik konfiguracyjny powinien wyglądać następująco. Teraz zapisz plik konfiguracyjny.
Teraz utwórz GIT_PROJECT_ROOT informator /var/www/git za pomocą następującego polecenia:
$ sudo mkdir /var/www/git
Teraz skonfiguruj SELinux dla /var/www/git katalog za pomocą następującego polecenia:
$ sudo semanage fcontext -m -t httpd_sys_rw_content_t"/zmienna/www/git(/.*)?"
Aby zmiany SELinux zaczęły obowiązywać, uruchom następujące polecenie:
$ sudo restorecon -Rv /var/www/git
Teraz uruchom ponownie usługę serwera Apache HTTP za pomocą następującego polecenia:
$ sudo systemctl restart httpd
Dodaj również usługę serwera Apache HTTP do uruchamiania systemu CentOS 8 za pomocą następującego polecenia:
$ sudo systemctl włącz httpd
Teraz zezwól portowi HTTP (80) na przejście przez ścianę plików za pomocą następującego polecenia:
$ sudo firewall-cmd --add-service=http --permanent
Aby zmiany zaczęły obowiązywać, ponownie załaduj zaporę w następujący sposób:
$ sudo firewall-cmd --reload
Łatwiejsze pisanie skryptu do tworzenia repozytoriów Git dostępnych dla HTTP:
Aby ułatwić tworzenie repozytoriów Git dostępnych dla HTTP, napisałem prosty skrypt powłoki, dzięki któremu możesz zaoszczędzić dużo cennego czasu.
Jeśli chcesz użyć mojego skryptu, utwórz nowy plik w ścieżce /usr/sbin/git-crate-repo za pomocą następującego polecenia:
$ sudo vi /usr/sbin/git-create-repo
Następnie wpisz następujące wiersze kodów w nowo utworzonym pliku /usr/sbin/git-crate-repo.
#!/bin/bashGIT_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
konfiguracja git http.prześlij pakiet prawda
git aktualizacja-informacje-serwer
chown -Rf apache:apache "$GIT_DIR/$REPO_NAME.głupek"
echo "Repozytorium Git '$REPO_NAME' utworzone w $GIT_DIR/$REPO_NAME.głupek"
Tak wygląda końcowy skrypt powłoki. Gdy skończysz, zapisz plik.
Teraz dodaj uprawnienia do wykonywania do skryptu powłoki /usr/sbin/git-create-repo za pomocą następującego polecenia:
$ sudo chmod +x /usr/sbin/git-create-repo
Utwórz repozytoria Git dostępne dla HTTP:
Teraz możesz utworzyć nowe repozytorium Git dostępne dla HTTP (nazwijmy to test) za pomocą następującego polecenia:
$ sudo test git-create-repo
Nowe repozytorium Git dostępne dla HTTP test powinno być w skrzyni.
Dostęp do repozytoriów Git z serwera Git:
Aby uzyskać dostęp do repozytoriów Git, które zostały utworzone na serwerze CentOS 8 Git, potrzebny jest adres IP serwera CentOS 8 Git i nazwa repozytorium Git.
Administrator serwera Git może znaleźć adres IP serwera Git za pomocą następującego polecenia:
$ nmcliW moim przypadku adres IP to 192.168.20.129. Dla ciebie będzie inaczej. Więc pamiętaj, aby od teraz zastąpić go swoim.
Gdy administrator serwera Git znajdzie adres IP, może wysłać go do użytkowników/programistów, którzy będą korzystać z repozytoriów Git hostowanych na serwerze Git. Następnie użytkownicy/deweloperzy mogą uzyskać dostęp do swoich pożądanych repozytoriów Git.
Na przykład, jeśli pion chce sklonować repozytorium Git test z serwera Git, może to zrobić w następujący sposób:
$ git klon http://192.168.20.129/test.git
Repozytorium Git test powinien zostać sklonowany z serwera Git.
Nowy katalog test/ należy utworzyć w bieżącym katalogu roboczym bob.
Teraz Bob może przejść do test/ katalog w następujący sposób:
$ test CD/
Teraz Bob tworzy nowy plik wiadomość.tekst w repozytorium Git.
$ echo 'witaj z linuxhint' >> wiadomość.tekst
Bob zatwierdza zmiany.
$ git dodaj .$ git commit -m 'początkowe zatwierdzenie'
Bob potwierdza, czy zmiany zostały zatwierdzone w repozytorium.
$ git log --oneline
Teraz Bob przesyła zmiany na serwer Git.
$ git push origin
Inny programista (powiedzmy shovon) kto chce przyczynić się do test Repozytorium Git może również sklonować test repozytorium z serwera Git.
$ git klon http://192.168.20.129/test.git
Shovon nawiguje do test/ informator.
$ test CD/
Shovon znajduje zobowiązanie, które zrobił Bob.
Teraz shovon zmienia wiadomość.plik txt.
$ echo 'shovon dodał nowe teksty' >> wiadomość.tekst
Zatwierdza zmiany.
$ git dodaj .$ git commit -m 'dodano nową wiadomość'
Shovon potwierdza, czy zmiany zostały zatwierdzone w repozytorium.
$ git log --oneline
Shovon przesyła zmiany na serwer Git.
$ git push origin
Teraz Bob pobiera zmiany z serwera Git.
$ git pull
Bob znajduje nowe zobowiązanie.
$ git log --oneline
Bob znajduje zmiany wprowadzone przez Shovon w wiadomości.plik txt.
W ten sposób możesz korzystać z repozytoriów Git z serwera HTTP Git.
Dodawanie uwierzytelniania użytkownika do serwera Git:
Jeśli chcesz dodać uwierzytelnianie użytkownika do repozytoriów Git na całym serwerze lub określonych repozytoriów Git, zapoznaj się z artykułem Konfiguracja serwera Git z HTTP w Ubuntu.
Tak więc konfigurujesz Git Smart HTTP Server w CentOS 8 i używasz repozytoriów Git z serwera Git. Dziękujemy za przeczytanie tego artykułu.