Git

Konfigurera Git Server med HTTP på Ubuntu

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

Installera Git och Apache HTTP-server:

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

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

$ sudo apt uppdatering

APT-paketets förvarscache bör uppdateras.

Installera nu Git och Apache med följande kommando:

$ sudo apt installera git apache2 apache2-utils

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

Git och Apache ska 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:

$ sudo a2enmod env cgi alias skrivas om

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

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

$ sudo mkdir / var / www / git

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

$ sudo nano / etc / apache2 / sites-available / git.konf

Skriv nu in följande rader i konfigurationsfilen:


ServerAdmin webbansvarig @ 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
 

Alternativ + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride None
Kräv alla beviljade

 
DocumentRoot / var / www / html
 

Alternativ Index FollowSymLinks MultiViews
AllowOverride None
Kräv alla beviljade

 
 
ErrorLog $ APACHE_LOG_DIR / fel.logga
LogLevel varnar
CustomLog $ APACHE_LOG_DIR / åtkomst.logg kombinerad

Den slutliga konfigurationsfilen ser ut som följer. Spara nu konfigurationsfilen genom att trycka på + X följd av Y och .

Inaktivera nu Apache-webbplatskonfigurationen med följande kommando:

$ sudo a2dissite 000-standard.konf

Standardwebbplatskonfigurationen ska vara inaktiverad.

Aktivera nu Git-platskonfigurationen med följande kommando:

$ sudo a2ensite git.konf

Git-webbplatsens konfiguration bör vara aktiverad.

Starta nu om Apache HTTP-server med följande kommando:

$ sudo systemctl starta om apache2

För att starta ett nytt Git-arkiv 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 / local / bin / git-create-repo.sh

Skriv nu in följande rader med koder i skalskriptet.

#!/ 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
tryck på git-daemon-export-ok
cp krokar / efter uppdatering.provkrokar / efter uppdatering
git config http.mottagarpaket sant
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
ekot "Git-arkivet" $ REPO_NAME "skapat i $ GIT_DIR / $ REPO_NAME.git "

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

Lägg nu till körbehörighet till skalskriptet med följande kommando:

$ sudo chmod + x / usr / local / bin / git-create-repo.sh

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

$ sudo git-create-repo.sh test

Git-förvaret testa bör skapas.

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

$ ip a

Som du kan se är IP-adressen i mitt fall 192.168.21.208. Det kommer att vara annorlunda för dig. Byt ut det med ditt från och med nu.

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

$ git-klon http: // 192.168.21.208 / git / test.git

Git-förvaret testa bör klonas.

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

$ cd test /
$ echo "Hello World"> hej
$ git add .
$ git commit -m 'initial commit'

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

$ git push-ursprung

Som du ser laddas ändringarna upp bra.

Konfigurera användarautentisering:

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

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

$ sudo nano / etc / apache2 / sites-available / git.konf

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


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.passwd
Kräver giltig användare

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

Den slutliga konfigurationsfilen ska se ut enligt följande. Spara nu filen genom att trycka på + X följd av Y 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:

$ sudo htpasswd -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 och tryck på .

Användarlösenordsparet ska läggas till i databasen.

Starta nu om Apache HTTP-server med följande kommando:

$ sudo systemctl starta om apache2

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

När du väl har autentiserat med användarnamnet och lösenordet kommer du att kunna komma åt Git-arkivet.

Även när du försöker trycka eller dra från Git-arkivet 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 arbetar tillsammans på samma Git-arkiv.

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

$ sudo nano / etc / apache2 / sites-available / git.konf

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


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.testa.passwd
Kräver giltig användare

 

AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.test2.passwd
Kräver giltig användare

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

Den slutliga konfigurationsfilen ska se ut enligt följande. Spara nu konfigurationsfilen genom att trycka på + X följd av Y och .

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

$ sudo htpasswd -c / etc / apache2 / git.testa.passwd USERNAME
$ sudo htpasswd -c / etc / apache2 / git.test2.passwd USERNAME

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

$ sudo systemctl starta om apache2

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

Så så konfigurerar du Git Server med Apache HTTP Server på Ubuntu. Tack för att du läste den här artikeln.

Mus Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Att använda en mus eller tangentbord i fel hållning av överdriven användning kan resultera i många hälsoproblem, inklusive stam, karpaltunnelsyndrom o...
Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...