Git

Configureer Git Server met HTTP op CentOS 8

Configureer Git Server met HTTP op CentOS 8
In dit artikel laat ik je zien hoe je Git Smart HTTP-server op CentOS 8 configureert voor het privé hosten van je Git-repositories. Dus laten we beginnen.

Git en Apache HTTP-server installeren:

Werk eerst de cache van de CentOS 8-pakketrepository bij met de volgende opdracht:

$ sudo dnf makecache

Installeer nu Git, Apache HTTP-server en Apache-tools met de volgende opdracht:

$ sudo dnf install git httpd httpd-tools

Druk nu op Y en druk vervolgens op om de installatie te bevestigen:.

Git, Apache en vereiste Apache-tools moeten zijn geïnstalleerd.

Apache HTTP-server configureren:

In deze sectie ga ik je laten zien hoe je de Apache-server configureert voor toegang tot Git-repositories via het HTTP-protocol.

Maak eerst een nieuw configuratiebestand /etc/httpd/conf.d/git.conf met het volgende commando:

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

Voeg nu de volgende regels toe aan het configuratiebestand: /etc/httpd/conf.d/git.conf:


SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
DocumentRoot /var/www/git
ScriptAlias ​​/ /usr/libexec/git-core/git-http-backend/
 

Opties +ExecCGI -MultiViews +SymLinksIfOwnerMatch
ToestaanOverschrijven Geen
Vereisen dat alles is verleend


Dav On
Opties Indexen FollowSymLinks
ToestaanOverschrijven Geen
Vereisen dat alles is verleend

Het uiteindelijke configuratiebestand zou er als volgt uit moeten zien:. Sla nu het configuratiebestand op.

Maak nu de GIT_PROJECT_ROOT map /var/www/git met het volgende commando:

$ sudo mkdir /var/www/git

Configureer nu SELinux voor de /var/www/git map met het volgende commando:

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

Voer de volgende opdracht uit om de SELinux-wijzigingen van kracht te laten worden:

$ sudo restorecon -Rv /var/www/git

Start nu de Apache HTTP-serverservice opnieuw met de volgende opdracht:

$ sudo systemctl herstart httpd

Voeg ook de Apache HTTP-serverservice toe aan het opstarten van het CentOS 8-systeem met de volgende opdracht:

$ sudo systemctl httpd inschakelen

Laat nu de HTTP-poort (80) door de bestandsmuur met de volgende opdracht:

$ sudo firewall-cmd --add-service=http --permanent

Om de wijzigingen door te voeren, laadt u de firewall als volgt opnieuw:

$ sudo firewall-cmd --reload

Een script schrijven voor het maken van HTTP-toegankelijke Git-repositories Eenvoudiger:

Om het maken van HTTP-toegankelijke Git-repositories gemakkelijker te maken, heb ik een eenvoudig shellscript geschreven dat je kunt gebruiken om veel van je kostbare tijd te besparen.

Als je mijn script wilt gebruiken, maak dan een nieuw bestand aan in het pad /usr/sbin/git-crate-repo met het volgende commando:

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

Typ vervolgens de volgende regels codes in het nieuw gemaakte bestand: /usr/sbin/git-crate-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 --bare &> /dev/null
touch git-daemon-export-ok
cp hooks/post-update.voorbeeldhaken/post-update
git config http.ontvangstpakket waar
git config http.uploadpack waar
git update-server-info
chown -Rf apache:apache "$GIT_DIR/$REPO_NAME.git"
echo "Git-repository '$REPO_NAME' gemaakt in $GIT_DIR/$REPO_NAME.git"

Zo ziet het uiteindelijke shellscript eruit looks. Als je klaar bent, sla je het bestand op.

Voeg nu uitvoerbare toestemming toe aan het shellscript /usr/sbin/git-create-repo met het volgende commando:

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

Maak HTTP-toegankelijke Git-opslagplaatsen:

Nu kun je een nieuwe HTTP-toegankelijke Git-repository maken (laten we het noemen test) met het volgende commando:

$ sudo git-create-repo-test

Een nieuwe HTTP-toegankelijke Git-repository test moet worden ingepakt.

Toegang tot de Git-opslagplaatsen vanaf de Git-server:

Om toegang te krijgen tot de Git-repositories die u op uw CentOS 8 Git-server hebt gemaakt, hebt u dat IP-adres van de CentOS 8 Git-server en de Git-repositorynaam nodig.

De Git-serverbeheerder kan het IP-adres van de Git-server vinden met het volgende commando:

$ nmcli

In mijn geval is het IP-adres 192.168.20.129. Het zal voor jou anders zijn. Dus zorg ervoor dat je het vanaf nu vervangt door de jouwe.

Zodra de Git-serverbeheerder het IP-adres heeft gevonden, kan hij/zij het naar de gebruikers/ontwikkelaars sturen die Git-repositories gaan gebruiken die op de Git-server worden gehost. Dan hebben de gebruikers/ontwikkelaars toegang tot hun gewenste Git-repositories.

Bijvoorbeeld, als bob wil de Git-repository klonen test vanaf de Git-server kan hij dit als volgt doen:

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

De Git-repository test moet worden gekloond van de Git-server.

Een nieuwe map test/ moet worden gemaakt in de huidige werkmap van bob.

Bob kan nu navigeren naar de test/ map als volgt:

$ cd-test/

Bob maakt nu een nieuw bestand aan bericht.tekst in de Git-repository.

$ echo 'hallo van linuxhint' >> bericht.tekst

Bob voert de wijzigingen door.

$ git toevoegen .

$ git commit -m 'initiële commit'

Bob bevestigt of de wijzigingen zijn vastgelegd in de repository.

$ git log --oneline

Bob uploadt nu de wijzigingen naar de Git-server.

$ git push oorsprong

Een andere ontwikkelaar (laten we zeggen sjovon) die wil bijdragen aan de test Git-repository kan ook de test repository van de Git-server.

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

Shovon navigeert naar de test/ map.

$ cd-test/

Shovon vindt de toezegging die Bob heeft gedaan.

Nu, Shovon verandert het bericht.txt-bestand.

$ echo 'shovon heeft nieuwe teksten toegevoegd' >> bericht.tekst

Legt de wijzigingen vast.

$ git toevoegen .

$ git commit -m 'een nieuw bericht toegevoegd'

Shovon bevestigt of de wijzigingen zijn vastgelegd in de repository.

$ git log --oneline

Shovon uploadt de wijzigingen naar de Git-server.

$ git push oorsprong

Bob haalt nu de wijzigingen van de Git-server.

$ git pull

Bob vindt de nieuwe inzet.

$ git log --oneline

Bob vindt de wijzigingen die Shovon in het bericht heeft aangebracht.txt-bestand.

Dit is hoe je Git-repositories van de Git HTTP-server kunt gebruiken.

Gebruikersauthenticatie toevoegen aan Git Server:

Als je gebruikersauthenticatie wilt toevoegen aan serverbrede Git-repositories of specifieke Git-repositories, raadpleeg dan het artikel Git Server configureren met HTTP op Ubuntu.

Dus zo configureer je Git Smart HTTP Server op CentOS 8 en gebruik je Git-repositories van de Git-server. Bedankt voor het lezen van dit artikel.

HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...
Hoe FPS-teller in Linux-games te tonen
Linux-gaming kreeg een grote duw toen Valve in 2012 Linux-ondersteuning voor Steam-client en hun games aankondigde. Sindsdien hebben veel AAA- en indi...