Konfigurer Git Server med HTTP på Ubuntu

Configure Git Server With Http Ubuntu



Hvis du vil konfigurere en Git HTTP -server for å jobbe med Git -lagre privat, er denne artikkelen noe for deg. I denne artikkelen skal jeg vise deg hvordan du konfigurerer en Git Smart HTTP -server på Ubuntu med Apache HTTP -server. Så, la oss komme i gang.

Git- og Apache -pakker er tilgjengelige i det offisielle pakkelageret til Ubuntu. Så du kan enkelt installere det med APT -pakkebehandleren.







Oppdater først APT -pakkelagerbufferen med følgende kommando:



$sudopassende oppdatering



APT -pakkelagerbufferen bør oppdateres.





Installer nå Git og Apache med følgende kommando:



$sudopassendeinstallere apache2 apache2-utils

Trykk nå OG og trykk deretter for å bekrefte installasjonen.

Git og Apache bør installeres.

Konfigurere Apache HTTP -server for Git:

Aktiver nå Apache mod_env , mod_cgi , mod_alias og mod_rewrite moduler med følgende kommando:

$sudoa2enmodenvcgialiasomskrive

De nødvendige Apache -modulene bør være aktivert.

Lag nå en ny katalog /var/www/git for å beholde alle Git -lagrene med følgende kommando:

$sudo mkdir /hvor/www/

Opprett nå en ny Apache -nettstedskonfigurasjon /etc/apache2/sites-available/git.conf for Git med følgende kommando:

$sudo nano /etc/apache2/nettsteder tilgjengelig/git.conf

Skriv inn følgende linjer i konfigurasjonsfilen:

<VirtualHost*:80>
ServerAdmin webmaster@lokal vert

SetEnv GIT_PROJECT_ROOT<sterk> /hvor/www/sterk>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias// /usr/lib/git-core/git-http-backend/

Alias/ /hvor/www/

<Katalog/usr/lib/git-core>
Alternativer +ExecCGI-MultiViews+SymLinksIfOwnerMatch
Tillat overstyring Ingen
Krev alt gitt
Katalog>

DocumentRoot/hvor/www/html

<Katalog/hvor/www>
Alternativer Indekser FollowSymLinks MultiViews
Tillat overstyring Ingen
Krev alt gitt
Katalog>


Feil logg$ {APACHE_LOG_DIR}/feil logg
LogLevel advare
CustomLog$ {APACHE_LOG_DIR}/access.log kombinert
VirtualHost>

Den endelige konfigurasjonsfilen ser slik ut. Lagre nå konfigurasjonsfilen ved å trykke + X etterfulgt av OG og .

Deaktiver nå standard Apache -nettstedskonfigurasjon med følgende kommando:

$sudoa2dissite 000-default.conf

Standard nettstedskonfigurasjon bør deaktiveres.

Aktiver nå Git -nettstedskonfigurasjonen med følgende kommando:

$sudoa2ensite git.conf

Git -nettstedskonfigurasjonen bør være aktivert.

Start nå Apache HTTP -server på nytt med følgende kommando:

$sudosystemctl starter apache2 på nytt

For å starte opp et nytt Git -depot som er tilgjengelig over Apache HTTP -serveren, må du kjøre noen få kommandoer. Du vil ikke gjøre det samme igjen og igjen bare for å lage et nytt Git -depot. Så jeg bestemte meg for å skrive et skallskript for dette formålet.

Opprett først et nytt skallskript /usr/local/bin/git-create-repo.sh med følgende kommando:

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

Skriv inn følgende koderader i skallskriptet.

#!/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 --bare &> /dev/null
ta pågit-daemon-export-ok
cpkroker/etter oppdatering. eksempel kroker/etter oppdatering
git confighttp.receivepackekte
git update-server-info
chown -Rfwww-data:www-data'$ {GIT_DIR}/$ {REPO_NAME}.gå'
kastet ut 'Git -depot'$ {REPO_NAME}'opprettet i$ {GIT_DIR}/$ {REPO_NAME}.gå'

Når du har skrevet inn disse linjene, skal skallskriptet se slik ut. Lagre filen ved å trykke på + X etterfulgt av OG og .

Legg nå til kjøringstillatelse til skallskriptet med følgende kommando:

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

Opprett nå et nytt Git -depot test i Git -prosjektroten /var/www/git bruker git-create-repo.sh shell script som følger:

$sudogit-create-repo.shtest

Git -depotet test bør opprettes.

For å få tilgang til Git -depotet trenger du IP -adressen til Git HTTP -serveren.

$iptil

Som du kan se, er IP -adressen i mitt tilfelle 192.168.21.208 . Det blir annerledes for deg. Bytt den ut med din fra nå av.

Nå kan du klone test Git -depot som følger:

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

Git -depotet test bør klones.

La oss nå legge til en ny forpliktelse til test Git -depot.

$CDtest/
$kastet ut 'Hei Verden' >Hallo
$git legge til.
$git commit -m 'første forpliktelse'

Last nå opp endringene til test Git repository på serveren som følger:

$git pushopprinnelse

Som du kan se, blir endringene lastet opp helt fint.

Konfigurere brukerautentisering:

I denne delen skal jeg vise deg hvordan du konfigurerer brukerautentisering på Git -lagrene på serveren.

Rediger først git.conf nettstedets konfigurasjonsfil som følger:

$sudo nano /etc/apache2/nettsteder tilgjengelig/git.conf

Legg nå til følgende seksjon i konfigurasjonsfilen.

<LocationMatch//.*.gå>
AuthType Basic
AuthName'Git -bekreftelse'
AuthUserFile/etc/apache2/git.passwd
Krev gyldig bruker
LocationMatch>

Her, /etc/apache2/git.passwd er brukerdatabasefilen.

Den endelige konfigurasjonsfilen skal se slik ut. Lagre filen ved å trykke på + X etterfulgt av OG og .

Lag nå en ny brukerdatabasefil /etc/apache2/git.passwd og legg til en ny bruker (la oss si shovon ) til databasefilen som følger:

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

Skriv inn et nytt passord for den nye brukeren og trykk .

Skriv det samme passordet på nytt og trykk .

Bruker-passord-paret bør legges til databasen.

Start nå Apache HTTP -server på nytt med følgende kommando:

$sudosystemctl starter apache2 på nytt

Nå, hvis du prøver å klone test repository igjen, blir du bedt om å autentisere som du kan se på skjermbildet nedenfor.

Når du har godkjent brukernavnet og passordet, får du tilgang til Git -depotet.

Selv når du prøver å skyve eller trekke fra Git -depotet, blir du også bedt om brukernavn og passord.

Når du har godkjent, vil push/pull fungere.

Du kan også angi forskjellige brukerdatabaser for forskjellige Git -lagre. Dette kan være nyttig for prosjekter der mange mennesker jobber sammen på det samme Git -depotet.

For å angi Git-lagringsmessig autentisering må du først redigere git.conf nettstedets konfigurasjonsfil som følger:

$sudo nano /etc/apache2/nettsteder tilgjengelig/git.conf

Legg nå til følgende linjer i konfigurasjonsfilen.

<plassering//test.go>
AuthType Basic
AuthName'Git -bekreftelse'
AuthUserFile/etc/apache2/git.test.passwd
Krev gyldig bruker
plassering>

<plassering//test2.git>
AuthType Basic
AuthName'Git -bekreftelse'
AuthUserFile/etc/apache2/git.test2.passwd
Krev gyldig bruker
plassering>

For hvert Git -depot test og test2 , til delen er definert. En annen brukerdatabasefil brukes for hvert Git -depot.

Den endelige konfigurasjonsfilen skal se slik ut. Lagre nå konfigurasjonsfilen ved å trykke + X etterfulgt av OG og .

Nå kan du opprette de nødvendige brukerdatabasene som følger:

$sudohtpasswd-c /etc/apache2/git.test.passwd BRUKERNAVN
$sudohtpasswd-c /etc/apache2/git.test2.passwd BRUKERNAVN

Når du er ferdig, start Apache HTTP -server på nytt med følgende kommando:

$sudosystemctl starter apache2 på nytt

Nå bør hvert Git -depot ha sitt eget sett med brukere som har tilgang til det.

Så det er slik du konfigurerer Git Server med Apache HTTP Server på Ubuntu. Takk for at du leste denne artikkelen.