Git

Konfigurer Git Server med HTTP på Ubuntu

Konfigurer Git Server med HTTP på Ubuntu
Hvis du vil konfigurere en Git HTTP-server for å jobbe med Git-arkiver 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.

Installere Git og Apache HTTP Server:

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:

$ sudo apt oppdatering

APT-pakkelagerbufferen bør oppdateres.

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

$ sudo apt installere git apache2 apache2-utils

Trykk nå Y og trykk deretter på for å bekrefte installasjonen.

Git og Apache skal installeres.

Konfigurere Apache HTTP-server for Git:

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

$ sudo a2enmod env cgi alias omskriv

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

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

$ sudo mkdir / var / www / git

Opprett nå en ny konfigurasjon av Apache-nettstedet / etc / apache2 / sites-available / git.konf for Git med følgende kommando:

$ sudo nano / etc / apache2 / nettsteder-tilgjengelig / git.konf

Skriv nå inn følgende linjer i konfigurasjonsfilen:


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
 

Alternativer + ExecCGI -MultiViews + SymLinksIfOwnerMatch
Tillat overstyring Ingen
Krever alt gitt

 
DocumentRoot / var / www / html
 

Alternativer Indekser FollowSymLinks MultiViews
Tillat overstyring Ingen
Krever alt gitt

 
 
ErrorLog $ APACHE_LOG_DIR / feil.Logg
LogLevel advarer
CustomLog $ APACHE_LOG_DIR / tilgang.logg kombinert

Den endelige konfigurasjonsfilen ser ut som følger. Lagre konfigurasjonsfilen ved å trykke på + X etterfulgt av Y og .

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

$ sudo a2dissite 000-standard.konf

Standard nettstedskonfigurasjon bør deaktiveres.

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

$ sudo a2ensite git.konf

Konfigurasjonen av Git-nettstedet skal være aktivert.

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

$ sudo systemctl start apache2 på nytt

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

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

$ sudo nano / usr / local / bin / git-create-repo.sh

Nå skriver du inn følgende kodelinjer i skallskriptet.

#!/ 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
berør git-daemon-export-ok
cp kroker / etter oppdatering.prøve kroker / etter oppdatering
git config http.mottakspakke sant
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
ekko "Git-depotet" $ REPO_NAME "opprettet i $ GIT_DIR / $ REPO_NAME.git "

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

Legg nå til utførelsestillatelse til skallskriptet med følgende kommando:

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

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

$ sudo git-create-repo.sh test

Git-depotet test skal opprettes.

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

$ ip a

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

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

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

Git-depotet test skal klones.

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

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

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

$ git push opprinnelse

Som du ser, blir endringene lastet opp helt fint.

Konfigurere brukerautentisering:

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

Først redigerer du git.konf nettstedskonfigurasjonsfil som følger:

$ sudo nano / etc / apache2 / nettsteder-tilgjengelig / git.konf

Legg nå til følgende avsnitt i konfigurasjonsfilen.


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.passwd
Krev gyldig bruker

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

Den endelige konfigurasjonsfilen skal se ut som følger. Lagre filen nå ved å trykke på + X etterfulgt av Y og .

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

$ sudo htpasswd -c / etc / apache2 / git.passwd shovon

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

Skriv inn samme passord og trykk på .

Brukerpassordparet skal legges til databasen.

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

$ sudo systemctl start apache2 på nytt

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

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

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

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

Du kan også angi en annen brukerdatabase for forskjellige Git-arkiver. Dette kan være nyttig for prosjekter der mange mennesker jobber sammen på samme Git-arkiv.

For å angi Git-lagringsmessig autentisering må du først redigere git.konf nettstedskonfigurasjonsfil som følger:

$ sudo nano / etc / apache2 / nettsteder-tilgjengelig / git.konf

Legg nå til følgende linjer i konfigurasjonsfilen.


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.test.passwd
Krev gyldig bruker

 

AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.test2.passwd
Krev gyldig bruker

For hvert Git-depot test og test2, en seksjonen er definert. En annen brukerdatabasefil brukes for hvert Git-arkiv.

Den endelige konfigurasjonsfilen skal se ut som følger. Lagre konfigurasjonsfilen ved å trykke på + X etterfulgt av Y og .

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

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

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

$ sudo systemctl start apache2 på nytt

Nå skal hvert Git-arkiv 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 leser denne artikkelen.

Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...
Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...