Konfigurirajte strežnik Git s HTTP v Ubuntuju

Configure Git Server With Http Ubuntu



Če želite nastaviti strežnik Git HTTP za zasebno delo s skladišči Git, je ta članek za vas. V tem članku vam bom pokazal, kako konfigurirati strežnik Git Smart HTTP na Ubuntu s strežnikom HTTP Apache. Torej, začnimo.

Paketa Git in Apache sta na voljo v uradnem skladišču paketov Ubuntu. Tako ga lahko preprosto namestite z upraviteljem paketov APT.







Najprej posodobite predpomnilnik shrambe paketov APT z naslednjim ukazom:



$sudoapt posodobitev



Predpomnilnik shrambe paketov APT je treba posodobiti.





Zdaj namestite Git in Apache z naslednjim ukazom:



$sudoaptnamestite pojdiapache2 apache2-utils

Zdaj pritisnite IN in nato pritisnite za potrditev namestitve.

Namestiti morate Git in Apache.

Konfiguriranje strežnika HTTP Apache za Git:

Zdaj omogočite Apache mod_env , mod_cgi , mod_alias in mod_rewrite modulov z naslednjim ukazom:

$sudoa2enmodenvcgivzdevekprepisati

Omogočiti je treba zahtevane module Apache.

Zdaj ustvarite nov imenik /var/www/git za shranjevanje vseh skladišč Git z naslednjim ukazom:

$sudo mkdir /kje/www/pojdi

Zdaj ustvarite novo konfiguracijo spletnega mesta Apache /etc/apache2/sites-available/git.conf za Git z naslednjim ukazom:

$sudo nano /itd/apache2/spletna mesta-na voljo/git.conf

Zdaj v konfiguracijsko datoteko vnesite naslednje vrstice:

<VirtualHost*:80>
Spletni skrbnik ServerAdmin@lokalni gostitelj

SetEnv GIT_PROJECT_ROOT<močna> /kje/www/pojdimočna>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/pojdi/ /usr/lib/git-core/git-http-backend/

Vzdevek/pojdi /kje/www/pojdi

<Imenik/usr/lib/git-core>
Možnosti +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Brez
Zahtevaj vse odobreno
Imenik>

DocumentRoot/kje/www/html

<Imenik/kje/www>
Kazala možnosti FollowSymLinks MultiViews
AllowOverride Brez
Zahtevaj vse odobreno
Imenik>


ErrorLog$ {APACHE_LOG_DIR}/error.log
Opozorilo LogLevel
CustomLog$ {APACHE_LOG_DIR}/access.log skupaj
VirtualHost>

Končna konfiguracijska datoteka izgleda tako. Zdaj shranite konfiguracijsko datoteko s pritiskom na + X sledi IN in .

Zdaj onemogočite privzeto konfiguracijo spletnega mesta Apache z naslednjim ukazom:

$sudoa2dissite 000-default.conf

Privzeto konfiguracijo spletnega mesta je treba onemogočiti.

Zdaj omogočite konfiguracijo spletnega mesta Git z naslednjim ukazom:

$sudoa2ensite git.conf

Omogočiti je treba konfiguracijo spletnega mesta Git.

Zdaj znova zaženite strežnik HTTP Apache z naslednjim ukazom:

$sudosystemctl znova zaženite apache2

Če želite zagnati novo skladišče Git, dostopno prek strežnika HTTP Apache, boste morali zagnati nekaj ukazov. Ne želite ponavljati iste stvari vedno znova samo zato, da ustvarite novo skladišče Git. Zato sem se odločil, da bom v ta namen napisal lupinski skript.

Najprej ustvarite nov skript lupine /usr/local/bin/git-create-repo.sh z naslednjim ukazom:

$sudo nano /usr/lokalno/zjutraj/git-create-repo.sh

Zdaj vnesite naslednje vrstice kod v lupinski skript.

#!/bin/bash

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

mkdir -str '{GIT_DIR} USD/$ {REPO_NAME}.go '
CD '{GIT_DIR} USD/$ {REPO_NAME}.go '

git init -samo &> /dev/nič
dotikgit-daemon-export-ok
cpkljuke/post-update.sample kljuke/po posodobitvi
git confighttp.receivepackprav
git update-server-info
chown -Rfwww-podatki: www-podatki'{GIT_DIR} USD/$ {REPO_NAME}.go '
vrgel ven 'Git repozitorij'$ {REPO_NAME}'ustvarjeno v{GIT_DIR} USD/$ {REPO_NAME}.go '

Ko vnesete te vrstice, mora biti lupinski skript videti na naslednji način. Zdaj shranite datoteko s pritiskom na + X sledi IN in .

Zdaj dodajte dovoljenje za izvajanje skriptu lupine z naslednjim ukazom:

$sudo chmod+ x/usr/lokalno/zjutraj/git-create-repo.sh

Zdaj ustvarite novo skladišče Git preskus v korenu projekta Git /var/www/git uporabljati git-create-repo.sh lupinski skript:

$sudogit-create-repo.shpreskus

Skladišče Git preskus je treba ustvariti.

Za dostop do skladišča Git potrebujete naslov IP strežnika Git HTTP.

$ipdo

Kot lahko vidite, je naslov IP v mojem primeru tak 192.168.21.208 . Pri vas bo drugače. Od zdaj naprej ga zamenjajte s svojim.

Zdaj lahko klonirate preskus Git repozitorij:

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

Skladišče Git preskus je treba klonirati.

Zdaj pa dodajmo novo zavezo preskus Git skladišče.

$CDpreskus/
$vrgel ven 'Pozdravljen, svet' >zdravo
$git add.
$git commit -m 'začetna zaveza'

Zdaj naložite spremembe v preskus Git skladišče na strežniku:

$git pushizvor

Kot lahko vidite, so spremembe naložene v redu.

Konfiguriranje avtentikacije uporabnika:

V tem razdelku vam bom pokazal, kako konfigurirate avtentikacijo uporabnikov v skladiščih Git v strežniku.

Najprej uredite datoteko git.conf konfiguracijsko datoteko spletnega mesta, kot sledi:

$sudo nano /itd/apache2/spletna mesta-na voljo/git.conf

Zdaj dodajte naslednji razdelek v konfiguracijsko datoteko.

<Ujemanje lokacije/pojdi/.* .go>
AuthType Basic
AuthName'Git Verification'
AuthUserFile/itd/apache2/git.passwd
Zahtevaj veljavnega uporabnika
Ujemanje lokacije>

Tukaj, /etc/apache2/git.passwd je datoteka baze podatkov uporabnika.

Končna konfiguracijska datoteka bi morala izgledati na naslednji način. Zdaj shranite datoteko s pritiskom na + X sledi IN in .

Zdaj ustvarite novo datoteko baze podatkov uporabnika /etc/apache2/git.passwd in dodajte novega uporabnika (recimo shovon ) v datoteko baze podatkov na naslednji način:

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

Zdaj vnesite novo geslo za novega uporabnika in pritisnite .

Znova vnesite isto geslo in pritisnite .

V zbirko podatkov je treba dodati par uporabnik-geslo.

Zdaj znova zaženite strežnik HTTP Apache z naslednjim ukazom:

$sudosystemctl znova zaženite apache2

Če poskusite klonirati datoteko preskus ponovno shranite, boste morali preveriti pristnost, kot lahko vidite na spodnjem posnetku zaslona.

Ko preverite pristnost z uporabniškim imenom in geslom, boste lahko dostopali do skladišča Git.

Tudi ko poskušate potisniti ali potegniti iz skladišča Git, boste vprašani tudi za uporabniško ime in geslo.

Ko potrdite pristnost, bo push/pull deloval.

Za različna skladišča Git lahko nastavite tudi različno bazo uporabnikov. To je lahko koristno za projekte, kjer veliko ljudi sodeluje na istem skladišču Git.

Če želite nastaviti preverjanje pristnosti v skladišču Git, najprej uredite datoteko git.conf konfiguracijsko datoteko spletnega mesta, kot sledi:

$sudo nano /itd/apache2/spletna mesta-na voljo/git.conf

Zdaj v konfiguracijsko datoteko dodajte naslednje vrstice.

<Lokacija/pojdi/test.go>
AuthType Basic
AuthName'Git Verification'
AuthUserFile/itd/apache2/git.test.passwd
Zahtevaj veljavnega uporabnika
Lokacija>

<Lokacija/pojdi/test2.git>
AuthType Basic
AuthName'Git Verification'
AuthUserFile/itd/apache2/git.test2.passwd
Zahtevaj veljavnega uporabnika
Lokacija>

Za vsako skladišče Git preskus in test2 , do razdelek je definiran. Za vsako skladišče Git se uporablja druga datoteka baze podatkov uporabnika.

Končna konfiguracijska datoteka bi morala izgledati na naslednji način. Zdaj shranite konfiguracijsko datoteko s pritiskom na + X sledi IN in .

Zdaj lahko ustvarite zahtevane baze uporabnikov na naslednji način:

$sudohtpasswd-c /itd/apache2/git.test.passwd USERNAME
$sudohtpasswd-c /itd/apache2/git.test2.passwd USERNAME

Ko končate, znova zaženite strežnik HTTP Apache z naslednjim ukazom:

$sudosystemctl znova zaženite apache2

Zdaj bi moralo imeti vsako skladišče Git svoj nabor uporabnikov, ki lahko do njega dostopajo.

Torej, tako konfigurirate strežnik Git s strežnikom Apache HTTP v Ubuntuju. Hvala, ker ste prebrali ta članek.