Git en Apache HTTP-server installeren:
Git- en Apache-pakketten zijn beschikbaar in de officiële pakketrepository van Ubuntu. U kunt het dus eenvoudig installeren met de APT-pakketbeheerder.
Werk eerst de cache van de APT-pakketrepository bij met de volgende opdracht:
$ sudo apt-update
De cache van de APT-pakketrepository moet worden bijgewerkt.
Installeer nu Git en Apache met de volgende opdracht:
$ sudo apt install git apache2 apache2-utils
Druk nu op Y en druk vervolgens op
Git en Apache zouden geïnstalleerd moeten zijn.
Apache HTTP-server configureren voor Git:
Schakel nu Apache in mod_env, mod_cgi, mod_alias en mod_rewrite modules met het volgende commando:
$ sudo a2enmod env cgi alias herschrijven
De vereiste Apache-modules moeten zijn ingeschakeld.
Maak nu een nieuwe map aan /var/www/git voor het bewaren van alle Git-repository's met het volgende commando:
$ sudo mkdir /var/www/git
Maak nu een nieuwe Apache-siteconfiguratie /etc/apache2/sites-available/git.conf voor Git met het volgende commando:
$ sudo nano /etc/apache2/sites-available/git.conf
Typ nu de volgende regels in het configuratiebestand:
ServerAdmin webmaster@localhost
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
Alias /git /var/www/git
Opties +ExecCGI -MultiViews +SymLinksIfOwnerMatch
ToestaanOverschrijven Geen
Vereisen dat alles is verleend
DocumentRoot /var/www/html
Opties Indexen FollowSymLinks MultiViews
ToestaanOverschrijven Geen
Vereisen dat alles is verleend
ErrorLog $APACHE_LOG_DIR/error.log
LogLevel waarschuwing
CustomLog $APACHE_LOG_DIR/toegang.log gecombineerd
Het uiteindelijke configuratiebestand ziet er als volgt uit:. Sla nu het configuratiebestand op door op . te drukken
Schakel nu de standaard Apache-siteconfiguratie uit met de volgende opdracht:
$ sudo a2dissite 000-standaard.conf
De standaard siteconfiguratie moet zijn uitgeschakeld.
Schakel nu de Git-siteconfiguratie in met de volgende opdracht:
$ sudo a2ensite git.conf
De Git-siteconfiguratie moet zijn ingeschakeld.
Start nu de Apache HTTP-server opnieuw met de volgende opdracht:
$ sudo systemctl herstart apache2
Om een nieuwe Git-repository op te starten die toegankelijk is via de Apache HTTP-server, moet u een paar opdrachten uitvoeren. Je wilt niet steeds hetzelfde doen om een nieuwe Git-repository te maken. Dus besloot ik voor dat doel een shellscript te schrijven.
Maak eerst een nieuw shellscript /usr/local/bin/git-create-repo.sh met het volgende commando:
$ sudo nano /usr/local/bin/git-create-repo.sh
Typ nu de volgende regels codes in het shellscript:.
#!/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 update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.git"
echo "Git-repository '$REPO_NAME' gemaakt in $GIT_DIR/$REPO_NAME.git"
Zodra u deze regels typt, zou het shellscript er als volgt uit moeten zien:. Sla het bestand nu op door op te drukken
Voeg nu uitvoeringstoestemming toe aan het shellscript met de volgende opdracht:
$ sudo chmod +x /usr/local/bin/git-create-repo.sh
Maak nu een nieuwe Git-repository test in de hoofdmap van het Git-project /var/www/git de ... gebruiken git-create-repo.sh shell-script als volgt:
$ sudo git-create-repo.sh test
De Git-repository test moet worden gemaakt.
Om toegang te krijgen tot de Git-repository, hebt u het IP-adres van de Git HTTP-server nodig.
$ ip aZoals je kunt zien, is het IP-adres in mijn geval: 192.168.21.208. Het zal voor jou anders zijn. Vervang hem vanaf nu door die van jou.
Nu kunt u de . klonen test Git-repository als volgt:
$ git kloon http://192.168.21.208/git/test.git
De Git-repository test zou gekloond moeten worden.
Laten we nu een nieuwe commit toevoegen aan de test Git-opslagplaats.
$ cd-test/$ echo "Hallo wereld" > hallo
$ git toevoegen .
$ git commit -m 'initiële commit'
Upload nu de wijzigingen naar de test Git-repository op de server als volgt:
$ git push oorsprongZoals je kunt zien, zijn de wijzigingen prima geüpload.
Gebruikersauthenticatie configureren:
In deze sectie laat ik je zien hoe je gebruikersauthenticatie configureert op de Git-repositories op de server.
Bewerk eerst de git.conf siteconfiguratiebestand als volgt:
$ sudo nano /etc/apache2/sites-available/git.conf
Voeg nu de volgende sectie toe aan het configuratiebestand:.
AuthType Basis
AuthName "Git-verificatie"
AuthUserFile /etc/apache2/git.passwd
Geldige gebruiker vereisen-
Hier, /etc/apache2/git.passwd is het gebruikersdatabasebestand.
Het uiteindelijke configuratiebestand zou er als volgt uit moeten zien:. Sla het bestand nu op door op te drukken
Maak nu een nieuw gebruikersdatabasebestand aan /etc/apache2/git.passwd en voeg een nieuwe gebruiker toe (laten we zeggen sjovon) als volgt naar het databasebestand:
$ sudo htpasswd -c /etc/apache2/git.passwd sjovon
Typ nu een nieuw wachtwoord voor de nieuwe gebruiker en druk op
Typ hetzelfde wachtwoord opnieuw en druk op
Het gebruiker-wachtwoordpaar moet aan de database worden toegevoegd.
Start nu de Apache HTTP-server opnieuw met de volgende opdracht:
$ sudo systemctl herstart apache2
Als je nu probeert de test repository opnieuw, wordt u gevraagd om te authenticeren, zoals u kunt zien in de onderstaande schermafbeelding.
Nadat je je hebt geverifieerd met de gebruikersnaam en het wachtwoord, heb je toegang tot de Git-repository.
Zelfs wanneer u probeert te pushen of te trekken uit de Git-repository, wordt u ook om de gebruikersnaam en het wachtwoord gevraagd.
Zodra u zich verifieert, werkt duwen/trekken.
U kunt ook verschillende gebruikersdatabases instellen voor verschillende Git-opslagplaatsen. Dit kan handig zijn voor projecten waar veel mensen samenwerken aan dezelfde Git-repository.
Om Git repository-wise authenticatie in te stellen, bewerk eerst de git.conf siteconfiguratiebestand als volgt:
$ sudo nano /etc/apache2/sites-available/git.confVoeg nu de volgende regels toe aan het configuratiebestand:.
AuthType Basis
AuthName "Git-verificatie"
AuthUserFile /etc/apache2/git.test.passwd
Geldige gebruiker vereisen-
AuthType Basis
AuthName "Git-verificatie"
AuthUserFile /etc/apache2/git.test2.passwd
Geldige gebruiker vereisen-
Voor elke Git-repository test en test2, een
Het uiteindelijke configuratiebestand zou er als volgt uit moeten zien:. Sla nu het configuratiebestand op door op . te drukken
Nu kunt u als volgt de vereiste gebruikersdatabases maken:
$ sudo htpasswd -c /etc/apache2/git.test.passwd GEBRUIKERSNAAM$ sudo htpasswd -c /etc/apache2/git.test2.passwd GEBRUIKERSNAAM
Als u klaar bent, start u de Apache HTTP-server opnieuw met de volgende opdracht:
$ sudo systemctl herstart apache2
Nu zou elke Git-repository zijn eigen set gebruikers moeten hebben die er toegang toe hebben.
Dus zo configureer je Git Server met Apache HTTP Server op Ubuntu. Bedankt voor het lezen van dit artikel.