Konfigurer Git Server med HTTP på Ubuntu

Configure Git Server With Http Ubuntu



Hvis du vil konfigurere en Git HTTP -server til privat arbejde med Git -arkiver, så er denne artikel noget for dig. I denne artikel vil jeg vise dig, hvordan du konfigurerer en Git Smart HTTP -server på Ubuntu med Apache HTTP -server. Så lad os komme i gang.

Git- og Apache -pakker er tilgængelige i det officielle pakkeopbevaringssted for Ubuntu. Så du kan nemt installere det med APT -pakkehåndteringen.







Opdater først APT -pakkelagringscachen med følgende kommando:



$sudopassende opdatering



APT -pakkens lagercache skal opdateres.





Installer nu Git og Apache med følgende kommando:



$sudopassendeinstallere apache2 apache2-utils

Tryk nu på OG og tryk derefter på for at bekræfte installationen.

Git og Apache skal installeres.

Konfiguration af Apache HTTP -server til Git:

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

$sudoa2enmodenvcgialiasomskrive

De nødvendige Apache -moduler skal være aktiveret.

Opret nu et nyt bibliotek /var/www/git for at beholde alle Git -lagre med følgende kommando:

$sudo mkdir /hvor/www/

Opret nu en ny Apache -webstedskonfiguration /etc/apache2/sites-available/git.conf til Git med følgende kommando:

$sudo nano /etc/apache2/tilgængelige websteder/git.conf

Skriv nu følgende linjer i konfigurationsfilen:

<VirtualHost*:80>
ServerAdmin webmaster@lokal vært

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

Alias/ /hvor/www/

<Vejviser/usr/lib/git-core>
Valgmuligheder +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Ingen
Kræv alt givet
Vejviser>

DocumentRoot/hvor/www/html

<Vejviser/hvor/www>
Indstillinger Indekser FollowSymLinks MultiViews
AllowOverride Ingen
Kræv alt givet
Vejviser>


Fejllog$ {APACHE_LOG_DIR}/error.log
LogLevel advare
CustomLog$ {APACHE_LOG_DIR}/access.log kombineret
VirtualHost>

Den endelige konfigurationsfil ser således ud. Gem nu konfigurationsfilen ved at trykke på + x efterfulgt af OG og .

Deaktiver nu standardkonfigurationen af ​​Apache -webstedet med følgende kommando:

$sudoa2dissite 000-default.conf

Standardwebstedskonfigurationen skal deaktiveres.

Aktiver nu Git -stedskonfigurationen med følgende kommando:

$sudoa2ensite git.conf

Git -webstedskonfigurationen skal være aktiveret.

Genstart nu Apache HTTP -server med følgende kommando:

$sudosystemctl genstart apache2

For at bootstrap et nyt Git -lager, der er tilgængeligt over Apache HTTP -serveren, skal du køre et par kommandoer. Du vil ikke gøre det samme igen og igen bare for at oprette et nyt Git -arkiv. Så jeg besluttede at skrive et shell -script til dette formål.

Opret først et nyt shell -script /usr/local/bin/git-create-repo.sh med følgende kommando:

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

Indtast nu følgende kodelinjer i shell -scriptet.

#!/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 --lige &> /dev/nul
røre vedgit-daemon-export-ok
cpkroge/efter opdatering. prøvekroge/efter opdatering
git -konfigurationhttp.receivepacksand
git update-server-info
chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.gå'
smed ud 'Git -depot'$ {REPO_NAME}'oprettet i$ {GIT_DIR}/$ {REPO_NAME}.gå'

Når du har indtastet disse linjer, skal shell -scriptet se ud som følger. Gem nu filen ved at trykke på + x efterfulgt af OG og .

Tilføj nu eksekver tilladelse til shell scriptet med følgende kommando:

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

Opret nu et nyt Git -arkiv prøve i Git -projektroden /var/www/git bruger git-create-repo.sh shell script som følger:

$sudogit-create-repo.shprøve

Git -depotet prøve skulle oprettes.

For at få adgang til Git -depotet har du brug for Git HTTP -serverens IP -adresse.

$iptil

Som du kan se, er IP -adressen i mit tilfælde 192.168.21.208 . Det vil være anderledes for dig. Udskift den med din fra nu af.

Nu kan du klone prøve Git repository som følger:

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

Git -depotet prøve skal klones.

Lad os nu tilføje en ny forpligtelse til prøve Git -depot.

$CDprøve/
$smed ud 'Hej Verden' >Hej
$git tilføj.
$git commit -m 'første forpligtelse'

Upload nu ændringerne til prøve Git repository på serveren som følger:

$git skuboprindelse

Som du kan se, uploades ændringerne fint.

Konfiguration af brugergodkendelse:

I dette afsnit vil jeg vise dig, hvordan du konfigurerer brugergodkendelse på Git -arkiverne på serveren.

Rediger først git.conf webstedets konfigurationsfil som følger:

$sudo nano /etc/apache2/tilgængelige websteder/git.conf

Tilføj nu følgende afsnit i konfigurationsfilen.

<LocationMatch//.*.gå>
AuthType Basic
AuthName'Git -verifikation'
AuthUserFile/etc/apache2/git.passwd
Kræv en gyldig bruger
LocationMatch>

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

Den endelige konfigurationsfil skal se ud som følger. Gem nu filen ved at trykke på + x efterfulgt af OG og .

Opret nu en ny brugerdatabasefil /etc/apache2/git.passwd og tilføj en ny bruger (lad os sige shovon ) til databasefilen som følger:

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

Indtast nu en ny adgangskode til den nye bruger, og tryk på .

Indtast den samme adgangskode igen, og tryk på .

Bruger-kodeordsparet skal føjes til databasen.

Genstart nu Apache HTTP -server med følgende kommando:

$sudosystemctl genstart apache2

Nu, hvis du prøver at klone prøve repository igen, bliver du bedt om at godkende, som du kan se på skærmbilledet herunder.

Når du har godkendt ved hjælp af brugernavn og adgangskode, har du adgang til Git -arkivet.

Selv når du prøver at skubbe eller trække fra Git -depotet, bliver du også bedt om brugernavn og adgangskode.

Når du har godkendt, virker push/pull.

Du kan også indstille forskellige brugerdatabaser til forskellige Git -lagre. Dette kan være nyttigt til projekter, hvor mange mennesker arbejder sammen på det samme Git -lager.

For at indstille Git-opbevaringsmæssig godkendelse skal du først redigere git.conf webstedets konfigurationsfil som følger:

$sudo nano /etc/apache2/tilgængelige websteder/git.conf

Tilføj nu følgende linjer i konfigurationsfilen.

<Beliggenhed//test.go>
AuthType Basic
AuthName'Git -verifikation'
AuthUserFile/etc/apache2/git.test.passwd
Kræv en gyldig bruger
Beliggenhed>

<Beliggenhed//test2.git>
AuthType Basic
AuthName'Git -verifikation'
AuthUserFile/etc/apache2/git.test2.passwd
Kræv en gyldig bruger
Beliggenhed>

For hvert Git -lager prøve og test2 , til afsnit er defineret. Der bruges en anden brugerdatabasefil til hvert Git -arkiv.

Den endelige konfigurationsfil skal se ud som følger. Gem nu konfigurationsfilen ved at trykke på + x efterfulgt af OG og .

Nu kan du oprette de nødvendige brugerdatabaser som følger:

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

Når du er færdig, skal du genstarte Apache HTTP -server med følgende kommando:

$sudosystemctl genstart apache2

Nu skal hvert Git -arkiv have sit eget sæt brugere, der kan få adgang til det.

Så sådan konfigurerer du Git Server med Apache HTTP Server på Ubuntu. Tak fordi du læste denne artikel.