Installere Git og Apache HTTP Server:
Oppdater først CentOS 8-pakkeoppbevaringsbufferen med følgende kommando:
$ sudo dnf makecache
Installer nå Git, Apache HTTP-server og Apache-verktøy med følgende kommando:
$ sudo dnf installer git httpd httpd-verktøy
Trykk nå Y og trykk deretter på
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 tilgang til Git-arkiver over HTTP-protokoll.
Først oppretter du en ny konfigurasjonsfil / etc / httpd / conf.d / git.konf med følgende kommando:
$ sudo vi / etc / httpd / conf.d / git.konf
Legg nå til 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 + SymLinksIfOwnerMatch
Tillat overstyring Ingen
Krever alt gitt
Dav On
Alternativer Indekser FollowSymLinks
Tillat overstyring Ingen
Krever alt gitt
Den endelige konfigurasjonsfilen skal se ut som følger. Lagre nå konfigurasjonsfilen.
Lag nå GIT_PROJECT_ROOT katalog / var / www / git med følgende kommando:
$ sudo mkdir / var / www / git
Nå konfigurerer du 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
Start Apache HTTP-servertjenesten på nytt med følgende kommando:
$ sudo systemctl start httpd på nytt
Legg også til Apache HTTP-servertjenesten til CentOS 8-systemoppstart med følgende kommando:
$ sudo systemctl aktiver httpd
Tillat nå HTTP-porten (80) gjennom filveggen med følgende kommando:
$ sudo firewall-cmd --add-service = http --permanent
For at endringene skal tre i kraft, laster du brannmuren på nytt som følger:
$ sudo firewall-cmd --reload
Å skrive et skript for å lage HTTP-tilgjengelige Git-lagre lettere:
For å gjøre det enklere å lage HTTP-tilgjengelige Git-arkiver, har jeg skrevet et enkelt skallskript som du kan bruke til å spare mye av din verdifulle tid.
Hvis du vil bruke skriptet mitt, oppretter du en ny fil i banen / usr / sbin / git-crate-repo med følgende kommando:
$ sudo vi / usr / sbin / git-create-repo
Skriv deretter inn følgende kodelinjer i den nylig opprettede filen / usr / sbin / git-crate-repo.
#!/ bin / bashGIT_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
berør git-daemon-export-ok
cp kroker / etter oppdatering.prøve kroker / etter oppdatering
git config http.mottakspakke sant
git config http.uploadpack true
git update-server-info
chown -Rf apache: apache "$ GIT_DIR / $ REPO_NAME.git "
ekko "Git-depotet" $ REPO_NAME "opprettet i $ GIT_DIR / $ REPO_NAME.git "
Slik ser det endelige skallskriptet ut. Når du er ferdig, lagrer du 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
Opprett HTTP-tilgjengelige Git-lagringssteder:
Nå kan du opprette et nytt HTTP-tilgjengelig Git-arkiv (la oss kalle det test) med følgende kommando:
$ sudo git-create-repo test
Et nytt HTTP-tilgjengelig Git-arkiv test skal kasseres.
Tilgang til Git Repositories fra Git-serveren:
For å få tilgang til Git-arkivene du har opprettet på CentOS 8 Git-serveren din, trenger du den IP-adressen til CentOS 8 Git-serveren og Git-depotnavnet.
Git-serveradministratoren kan finne IP-adressen til Git-serveren med følgende kommando:
$ nmcliI 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-serveradministratoren finner IP-adressen, kan han / hun sende den til brukerne / utviklerne som skal bruke Git-arkiver som er vert på Git-serveren. Da kan brukerne / utviklerne få tilgang til de ønskede Git-arkivene.
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 gjeldende arbeidskatalog for bob.
Nå kan bob navigere til test/ katalog som følger:
$ cd test /
Nå oppretter bob en ny fil beskjed.tekst i Git-depotet.
$ echo 'hallo fra linuxhint' >> melding.tekst
Bob forplikter seg til endringene.
$ git add .$ git commit -m 'initial commit'
Bob bekrefter om endringene ble forpliktet til depotet.
$ git log --online
Nå laster bob opp endringene til Git-serveren.
$ git push opprinnelse
En annen utvikler (la oss si shovon) som ønsker å bidra til test Git repository kan også klone test 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.
$ echo 'shovon la til noen nye tekster' >> melding.tekst
Forplikter endringene.
$ git add .$ git commit -m 'la til noen nye meldinger'
Shovon bekrefter om endringene ble forpliktet til depotet.
$ git log --online
Shovon laster opp endringene til Git-serveren.
$ git push opprinnelse
Nå henter bob endringene fra Git-serveren.
$ git pull
Bob finner den nye forpliktelsen.
$ git log --online
Bob finner endringene som Shovon gjorde i meldingen.txt-fil.
Slik kan du bruke Git-arkiver fra Git HTTP-serveren.
Legge til brukerautentisering til Git Server:
Hvis du vil legge til brukerautentisering til server-wide Git-arkiver eller spesifikke Git-lagre, sjekk deretter artikkelen Konfigurer Git Server med HTTP på Ubuntu.
Så det er slik du konfigurerer Git Smart HTTP Server på CentOS 8 og bruker Git-arkiver fra Git-serveren. Takk for at du leser denne artikkelen.