Konfigurera Git Server med HTTP på Ubuntu

Configure Git Server With Http Ubuntu



Om du vill konfigurera en Git HTTP -server för att arbeta privat med Git -förråd, så är den här artikeln för dig. I den här artikeln kommer jag att visa dig hur du konfigurerar en Git Smart HTTP -server på Ubuntu med Apache HTTP -server. Så, låt oss komma igång.

Git- och Apache -paket är tillgängliga i det officiella paketförvaret för Ubuntu. Så du kan enkelt installera det med APT -pakethanteraren.







Uppdatera först APT -paketets förvaringscache med följande kommando:



$sudolämplig uppdatering



APT -pakets lagringscache bör uppdateras.





Installera nu Git och Apache med följande kommando:



$sudobenägenInstallera apache2 apache2-utils

Nu, tryck OCH och tryck sedan på för att bekräfta installationen.

Git och Apache bör installeras.

Konfigurera Apache HTTP -server för Git:

Aktivera nu Apache mod_env , mod_cgi , mod_alias och mod_rewrite moduler med följande kommando:

$sudoa2enmodenvcgialiasskriva om

De nödvändiga Apache -modulerna bör vara aktiverade.

Skapa nu en ny katalog /var/www/git för att behålla alla Git -arkiv med följande kommando:

$sudo mkdir /var/www/

Skapa nu en ny Apache -webbplatskonfiguration /etc/apache2/sites-available/git.conf för Git med följande kommando:

$sudo nano /etc/apache2/webbplatser tillgängliga/git.conf

Skriv nu in följande rader i konfigurationsfilen:

<VirtualHost*:80>
ServerAdmin webbansvarig@lokal värd

SetEnv GIT_PROJECT_ROOT<stark> /var/www/stark>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias// /usr/lib/git-core/git-http-backend/

Alias/ /var/www/

<Katalog/usr/lib/git-core>
Alternativ +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Ingen
Kräv allt beviljat
Katalog>

DocumentRoot/var/www/html

<Katalog/var/www>
Alternativ Index Index FollowSymLinks MultiViews
AllowOverride Ingen
Kräv allt beviljat
Katalog>


Felloggen$ {APACHE_LOG_DIR}/felloggen
LogLevel varna
CustomLog$ {APACHE_LOG_DIR}/access.log kombinerat
VirtualHost>

Den slutliga konfigurationsfilen ser ut så här. Spara nu konfigurationsfilen genom att trycka på + X följd av OCH och .

Inaktivera nu standardkonfigurationen för Apache -webbplatsen med följande kommando:

$sudoa2dissite 000-default.conf

Standardwebbplatsens konfiguration bör inaktiveras.

Aktivera nu Git -webbplatsens konfiguration med följande kommando:

$sudoa2ensite git.conf

Git -webbplatsens konfiguration bör vara aktiverad.

Starta om Apache HTTP -servern med följande kommando:

$sudosystemctl startar om apache2

För att starta ett nytt Git -arkiv som är tillgängligt via Apache HTTP -servern måste du köra några kommandon. Du vill inte göra samma sak om och om igen bara för att skapa ett nytt Git -arkiv. Så jag bestämde mig för att skriva ett skalskript för det ändamålet.

Skapa först ett nytt skalskript /usr/local/bin/git-create-repo.sh med följande kommando:

$sudo nano /usr/lokal/am/git-create-repo.sh

Skriv nu in följande koderader i skalskriptet.

#!/bin/bash

GIT_DIR='/var/www/git'
REPO_NAME=$ 1

mkdir -s '$ {GIT_DIR}/$ {REPO_NAME}.gå'
CD '$ {GIT_DIR}/$ {REPO_NAME}.gå'

git init --bara &> /dev/null
Rörgit-daemon-export-ok
cpkrokar/efter uppdatering. provkrokar/efter uppdatering
git confighttp.receivepackSann
git update-server-info
chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.gå'
kastade ut 'Git -arkiv'$ {REPO_NAME}'skapat i$ {GIT_DIR}/$ {REPO_NAME}.gå'

När du har skrivit in dessa rader ska skalskriptet se ut så här. Spara nu filen genom att trycka på + X följd av OCH och .

Lägg nu till execute -behörighet till skalskriptet med följande kommando:

$sudo chmod+ x/usr/lokal/am/git-create-repo.sh

Skapa nu ett nytt Git -arkiv testa i Git -projektroten /var/www/git använda git-create-repo.sh skalskript enligt följande:

$sudogit-create-repo.shtesta

Git -förvaret testa bör skapas.

För att komma åt Git -förvaret behöver du IP -adressen för Git HTTP -servern.

$iptill

Som du kan se är IP -adressen i mitt fall 192.168.21.208 . Det blir annorlunda för dig. Ersätt den med din från och med nu.

Nu kan du klona testa Git -förvaret enligt följande:

$git klonhttp://192.168.21.208//test.go

Git -förvaret testa bör klonas.

Låt oss nu lägga till ett nytt åtagande till testa Git -arkiv.

$CDtesta/
$kastade ut 'Hej världen' >Hej
$git lägg till.
$git begå -m 'första åtagande'

Ladda nu upp ändringarna till testa Git -förvaret på servern enligt följande:

$git pushursprung

Som du kan se laddas ändringarna upp bra.

Konfigurera användarverifiering:

I det här avsnittet kommer jag att visa dig hur du konfigurerar användarautentisering på Git -lagren på servern.

Redigera först git.conf webbplatskonfigurationsfil enligt följande:

$sudo nano /etc/apache2/webbplatser tillgängliga/git.conf

Lägg nu till följande avsnitt i konfigurationsfilen.

<LocationMatch//.*.gå>
AuthType Basic
AuthName'Git Verification'
AuthUserFile/etc/apache2/git.passwd
Kräv giltig användare
LocationMatch>

Här, /etc/apache2/git.passwd är användardatabasfilen.

Den slutliga konfigurationsfilen ska se ut så här. Spara nu filen genom att trycka på + X följd av OCH och .

Skapa nu en ny användardatabasfil /etc/apache2/git.passwd och lägg till en ny användare (låt oss säga shovon ) till databasfilen enligt följande:

$sudohtpasswd-c /etc/apache2/git.passwd shovon

Skriv nu in ett nytt lösenord för den nya användaren och tryck på .

Skriv in samma lösenord igen och tryck på .

Användar-lösenordsparet bör läggas till i databasen.

Starta om Apache HTTP -servern med följande kommando:

$sudosystemctl startar om apache2

Om du nu försöker klona testa repository igen, kommer du att bli ombedd att autentisera som du kan se på skärmdumpen nedan.

När du har verifierat med användarnamnet och lösenordet kommer du att kunna komma åt Git -förvaret.

Även när du försöker trycka eller dra från Git -förvaret kommer du också att bli ombedd att ange användarnamn och lösenord.

När du har autentiserat fungerar push/pull.

Du kan också ställa in olika användardatabaser för olika Git -arkiv. Detta kan vara användbart för projekt där många människor arbetar tillsammans på samma Git -arkiv.

För att ställa in Git-förvarsmässig autentisering, redigera först git.conf webbplatskonfigurationsfil enligt följande:

$sudo nano /etc/apache2/webbplatser tillgängliga/git.conf

Lägg nu till följande rader i konfigurationsfilen.

<Plats//test.go>
AuthType Basic
AuthName'Git Verification'
AuthUserFile/etc/apache2/git.test.passwd
Kräv giltig användare
Plats>

<Plats//test2.git>
AuthType Basic
AuthName'Git Verification'
AuthUserFile/etc/apache2/git.test2.passwd
Kräv giltig användare
Plats>

För varje Git -arkiv testa och test2 , till avsnitt definieras. En annan användardatabasfil används för varje Git -arkiv.

Den slutliga konfigurationsfilen ska se ut så här. Spara nu konfigurationsfilen genom att trycka på + X följd av OCH och .

Nu kan du skapa de nödvändiga användardatabaserna enligt följande:

$sudohtpasswd-c /etc/apache2/git.test.passwd ANVÄNDARNAMN
$sudohtpasswd-c /etc/apache2/git.test2.passwd ANVÄNDARNAMN

När du är klar startar du om Apache HTTP -servern med följande kommando:

$sudosystemctl startar om apache2

Nu bör varje Git -arkiv ha sin egen uppsättning användare som kan komma åt den.

Så det är så du konfigurerar Git Server med Apache HTTP Server på Ubuntu. Tack för att du läste denna artikel.