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
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/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
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:
$ nmcliIn 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.