Konfigurer git -server med http på centos 8

Konfigurer git -server med http på centos 8
I denne artikkelen skal jeg vise deg hvordan du konfigurerer Git Smart HTTP -server på CentOS 8 for å være vert for Git -lagringene dine privat. Så la oss komme i gang.

Installere Git og Apache HTTP -server:

Oppdater først CentOS 8 Package Repository Cache med følgende kommando:

$ sudo dnf makecache

Nå, installer Git, Apache HTTP -server og Apache -verktøy med følgende kommando:

$ sudo dnf installer git httpd httpd-tools

Nå, trykk Y Og trykk deretter For å bekrefte installasjonen.

Git, apache og nødvendige apache -verktøy bør installeres.

Konfigurere Apache HTTP -server:

I denne delen skal jeg vise deg hvordan du konfigurerer Apache -serveren for å få tilgang til Git -lagringsplasser over HTTP -protokollen.

Opprett først en ny konfigurasjonsfil /etc/httpd/conf.d/git.konf med følgende kommando:

$ sudo vi/etc/httpd/conf.d/git.konf

Legg nå følgende linjer i konfigurasjonsfilen /etc/httpd/conf.d/git.konf:


Setenv git_project_root/var/www/git
Setenv git_http_export_all
Documentroot/var/www/git
Scriptalias//usr/libexec/git-core/git-http-backend/

Alternativer +execcgi -multiViews +symlinksifoWreMatch
Tillat ingen
Krever alt gitt


Dav på
Alternativerindekser følgerSymlinks
Tillat ingen
Krever alt gitt

Den endelige konfigurasjonsfilen skal se ut som følger. Lagre konfigurasjonsfilen nå.

Lag nå Git_project_root katalog /var/www/git med følgende kommando:

$ sudo mkdir/var/www/git

Konfigurer nå Selinux for /var/www/git Katalog med følgende kommando:

$ sudo semanage fcontext -m -t httpd_sys_rw_content_t
"/var/www/git (/.*)?""

For at Selinux -endringene skal tre i kraft, kjør følgende kommando:

$ sudo restorecon -rv/var/www/git

Nå start Apache HTTP -servertjenesten med følgende kommando:

$ sudo SystemCTL Restart httpd

Legg også til Apache HTTP Server -tjenesten til CentOS 8 -systemet med følgende kommando:

$ sudo systemctl aktiver httpd

La nå HTTP -porten (80) gjennom filwallen med følgende kommando:

$ sudo Firewall-CMD-ADD-SERVICE = HTTP-Permanent

For at endringene skal tre i kraft, last inn brannmuren på nytt som følger:

$ sudo Firewall-CMD-Reload

Å skrive et skript for å lage HTTP tilgjengelig Git -lagringsplasser enklere:

For å gjøre det lettere å lage HTTP -tilgjengelige Git -depoter, har jeg skrevet et enkelt skallskript som du kan bruke for å spare mye av din verdifulle tid.

Hvis du vil bruke skriptet mitt, oppretter du en ny fil i banen /usr/sbin/git-krate-repo med følgende kommando:

$ sudo vi/usr/sbin/git-create-repo

Skriv deretter inn følgende koder i den nyopprettede filen /usr/sbin/git-krate-repo.

#!/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 - -fair &> /dev /null
Touch git-daemon-export-ok
CP-kroker/post-oppdatering.Eksempelkroker/post-oppdatering
git config http.motta Pack True
git config http.Last opp pakke
git oppdateringsserver-info
chown -rf apache: apache "$ git_dir/$ repo_name.Git "
Echo "Git Repository '$ repo_name' opprettet i $ git_dir/$ repo_name.Git "

Slik ser det endelige skallskriptet ut. Når du er ferdig, lagre filen.

Legg nå til kjørbar tillatelse til skallskriptet /usr/sbin/git-create-repo med følgende kommando:

$ sudo chmod +x/usr/sbin/git-create-repo

Lag HTTP tilgjengelig Git -lagringssteder:

Nå kan du opprette et nytt HTTP tilgjengelig Git -depot (la oss kalle det test) med følgende kommando:

$ sudo git-create-repo test

Et nytt HTTP tilgjengelig Git -depot test skal være kassert.

Få tilgang til GIT -lagrene fra Git -serveren:

For å få tilgang til Git -depotene du har opprettet på CentOS 8 Git -serveren din, er du at IP -adressen til Centos 8 Git -serveren og Git -depotnavnet.

Git -serveradministratoren kan finne IP -adressen til Git -serveren med følgende kommando:

$ nmcli

I mitt tilfelle er IP -adressen 192.168.20.129. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.

Når Git Server -administratoren finner IP -adressen, kan han/hun sende den til brukerne/utviklerne som vil bruke Git -lagringsplasser som er vert på Git -serveren. Da kan brukerne/utviklerne få tilgang til de ønskede Git -lagrene.

For eksempel, hvis Bob ønsker å klone Git -depotet test Fra Git -serveren kan han gjøre det som følger:

$ git klon http: // 192.168.20.129/test.git

Git -depotet test skal klones fra Git -serveren.

En ny katalog test/ skal opprettes i den nåværende arbeidskatalogen til Bob.

Nå kan Bob navigere til test/ Katalog som følger:

$ CD -test/

Nå oppretter Bob en ny fil beskjed.tekst i Git -depotet.

$ ekko 'Hei fra Linuxhint' >> Melding.tekst

Bob begår endringene.

$ git Legg til .
$ git commit -m 'initial commit'

Bob bekrefter om endringene var forpliktet til depotet.

$ git log --oneline

Nå laster Bob opp endringene til Git -serveren.

$ git push origin

En annen utvikler (la oss si Shovon) som vil bidra til test Git -depot kan også klone test depot fra Git -serveren.

$ git klon http: // 192.168.20.129/test.git

Shovon navigerer til test/ katalog.

$ CD -test/

Shovon finner forpliktelsen som Bob gjorde.

Nå endrer Shovon meldingen.txt -fil.

$ ekko 'Shovon la til noen nye tekster' >> melding.tekst

Begår endringene.

$ git Legg til .
$ git commit -m 'la til noen ny melding'

Shovon bekrefter om endringene var forpliktet til depotet.

$ git log --oneline

Shovon laster opp endringene til Git -serveren.

$ git push origin

Nå trekker Bob endringene fra Git -serveren.

$ git pull

Bob finner den nye forpliktelsen.

$ git log --oneline

Bob finner endringene som Shovon gjorde til meldingen.txt -fil.

Slik kan du bruke Git -lagringsplasser fra Git HTTP -serveren.

Legge til brukergodkjenning til Git -serveren:

Hvis du vil legge til brukergodkjenning til serverens brede Git -lagringsplasser eller spesifikke Git -lagringsplasser, kan du sjekke artikkelen Konfigurere Git -serveren med HTTP på Ubuntu.

Så det er slik du konfigurerer Git Smart HTTP -server på CentOS 8 og bruker Git -lagringsplasser fra Git -serveren. Takk for at du leste denne artikkelen.