Konfigurirajte Git poslužitelj s HTTP -om na Ubuntuu

Configure Git Server With Http Ubuntu



Ako želite postaviti Git HTTP poslužitelj za privatni rad s Git spremištima, onda je ovaj članak za vas. U ovom članku pokazat ću vam kako konfigurirati Git Smart HTTP poslužitelj na Ubuntuu s Apache HTTP poslužiteljem. Dakle, krenimo.

Git i Apache paketi dostupni su u službenom spremištu paketa Ubuntu. Dakle, možete ga jednostavno instalirati s upraviteljem paketa APT.







Prvo ažurirajte predmemoriju spremišta paketa APT sljedećom naredbom:



$sudoprikladno ažuriranje



Predmemoriju spremišta paketa APT -a treba ažurirati.





Sada instalirajte Git i Apache sa sljedećom naredbom:



$sudoprikladaninstalirati ićiapache2 apache2-utils

Sada pritisnite I a zatim pritisnite za potvrdu instalacije.

Treba instalirati Git i Apache.

Konfiguriranje Apache HTTP poslužitelja za Git:

Sada omogućite Apache mod_env , mod_cgi , mod_alias i mod_rewrite moduli sa sljedećom naredbom:

$sudoa2enmodenvcgialiasprepisati

Potrebni Apache moduli trebaju biti omogućeni.

Sada stvorite novi direktorij /var/www/git za čuvanje svih Git spremišta sa sljedećom naredbom:

$sudo mkdir /gdje/www/ići

Sada stvorite novu konfiguraciju Apache web stranice /etc/apache2/sites-available/git.conf za Git sa sljedećom naredbom:

$sudo nano /itd/apache2/web-mjesta dostupna/git.conf

Sada u konfiguracijsku datoteku upišite sljedeće retke:

<VirtualHost*:80>
ServerAdmin webmaster@localhost

SetEnv GIT_PROJECT_ROOT<snažan> /gdje/www/ićisnažan>
SetEnv GIT_HTTP_EXPORT_ALL
SkriptaAlias/ići/ /usr/lib/git-core/git-http-backend/

Alias/ići /gdje/www/ići

<Imenik/usr/lib/git-core>
Opcije +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Ništa
Zahtijeva sve odobreno
Imenik>

DocumentRoot/gdje/www/html

<Imenik/gdje/www>
Indeksi mogućnosti FollowSymLinks MultiViews
AllowOverride Ništa
Zahtijeva sve odobreno
Imenik>


ErrorLog$ {APACHE_LOG_DIR}/greška.log
LogLevel upozorava
CustomLog$ {APACHE_LOG_DIR}/access.log kombinirano
VirtualHost>

Konačna konfiguracijska datoteka izgleda ovako. Sada spremite konfiguracijsku datoteku pritiskom na + x slijedi I i .

Sada onemogućite zadanu konfiguraciju Apache web mjesta sljedećom naredbom:

$sudoa2dissite 000-default.conf

Zadana konfiguracija web mjesta trebala bi biti onemogućena.

Sada omogućite konfiguraciju web lokacije Git sa sljedećom naredbom:

$sudoa2ensite git.conf

Treba omogućiti konfiguraciju Git web stranice.

Sada ponovno pokrenite Apache HTTP poslužitelj sa sljedećom naredbom:

$sudosystemctl ponovno pokrenite apache2

Da biste pokrenuli novo Git spremište dostupno preko Apache HTTP poslužitelja, morat ćete pokrenuti nekoliko naredbi. Ne želite činiti istu stvar uvijek iznova samo radi stvaranja novog Git spremišta. Stoga sam odlučio napisati ljuskastu skriptu u tu svrhu.

Prvo, stvorite novu skriptu ljuske /usr/local/bin/git-create-repo.sh sa sljedećom naredbom:

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

Sada upišite sljedeće redove kodova u skriptu ljuske.

#!/bin/bash

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

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

git init --samo &> /dev/null
dodirgit-daemon-export-ok
k.čudice/post-update.sample hooks/nakon ažuriranja
git confighttp.receivepackpravi
git update-server-info
chown -Rfwww-podaci: www-podaci'{GIT_DIR} USD/$ {REPO_NAME}.ići'
izbaciti 'Git spremište'$ {REPO_NAME}'stvoreno u{GIT_DIR} USD/$ {REPO_NAME}.ići'

Nakon što unesete ove retke, skripta ljuske trebala bi izgledati ovako. Sada spremite datoteku pritiskom na + x slijedi I i .

Sada dodajte dopuštenje za izvršavanje u skriptu ljuske sljedećom naredbom:

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

Sada, stvorite novo Git spremište test u korijenu projekta Git /var/www/git koristiti git-create-repo.sh ljuska skripta kako slijedi:

$sudogit-create-repo.shtest

Spremište Git test treba stvoriti.

Za pristup Git spremištu potrebna vam je IP adresa Git HTTP poslužitelja.

$ipdo

Kao što vidite, IP adresa u mom slučaju je 192.168.21.208 . Bit će vam drugačije. Od sada ga zamijenite svojim.

Sada možete klonirati test Git spremište na sljedeći način:

$git klonhttp://192.168.21.208/ići/testirati.otići

Spremište Git test treba klonirati.

Sada, dodajmo novo urezivanje u test Git spremište.

$CDtest/
$izbaciti 'Pozdrav svijete' >zdravo
$git add.
$git commit -m 'početno obvezivanje'

Sada prenesite promjene u test Git spremište na poslužitelju na sljedeći način:

$git pushpodrijetlo

Kao što vidite, promjene su prenesene sasvim u redu.

Konfiguriranje autentifikacije korisnika:

U ovom odjeljku pokazat ću vam kako konfigurirati autentifikaciju korisnika na Git spremištu na poslužitelju.

Prvo uredite git.conf konfiguracijsku datoteku web stranice kako slijedi:

$sudo nano /itd/apache2/web-mjesta dostupna/git.conf

Sada dodajte sljedeći odjeljak u konfiguracijsku datoteku.

<Podudaranje lokacije/ići/.*.ići>
AuthType Basic
AuthName'Potvrda Gita'
AuthUserFile/itd/apache2/git.passwd
Zahtijeva valjanog korisnika
Podudaranje lokacije>

Ovdje, /etc/apache2/git.passwd je datoteka baze podataka korisnika.

Konačna konfiguracijska datoteka trebala bi izgledati na sljedeći način. Sada spremite datoteku pritiskom na + x slijedi I i .

Sada stvorite novu datoteku baze podataka korisnika /etc/apache2/git.passwd i dodati novog korisnika (recimo šovon ) u datoteku baze podataka na sljedeći način:

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

Sada upišite novu lozinku za novog korisnika i pritisnite .

Ponovo upišite istu lozinku i pritisnite .

Par korisnička lozinka treba dodati u bazu podataka.

Sada ponovno pokrenite Apache HTTP poslužitelj sa sljedećom naredbom:

$sudosystemctl ponovno pokrenite apache2

Ako pokušate klonirati datoteku test ponovno spremište, od vas će se tražiti da potvrdite autentičnost kao što možete vidjeti na slici ispod.

Nakon što se autentificirate koristeći korisničko ime i lozinku, moći ćete pristupiti spremištu Git.

Čak i kad pokušate gurnuti ili povući iz Git spremišta, od vas će se također tražiti korisničko ime i lozinka.

Nakon što potvrdite autentičnost, push/pull će raditi.

Također možete postaviti različitu korisničku bazu podataka za različita Git spremišta. Ovo bi moglo biti korisno za projekte u kojima puno ljudi radi zajedno na istom Git spremištu.

Da biste postavili autentifikaciju Git spremišta, najprije uredite datoteku git.conf konfiguracijsku datoteku web stranice kako slijedi:

$sudo nano /itd/apache2/web-mjesta dostupna/git.conf

Sada dodajte sljedeće retke u konfiguracijsku datoteku.

<Mjesto/ići/testirati.otići>
AuthType Basic
AuthName'Potvrda Gita'
AuthUserFile/itd/apache2/git.test.passwd
Zahtijeva valjanog korisnika
Mjesto>

<Mjesto/ići/test2.git>
AuthType Basic
AuthName'Potvrda Gita'
AuthUserFile/itd/apache2/git.test2.passwd
Zahtijeva valjanog korisnika
Mjesto>

Za svako Git spremište test i test2 , do odjeljak je definiran. Za svako Git spremište koristi se druga datoteka baze podataka korisnika.

Konačna konfiguracijska datoteka trebala bi izgledati na sljedeći način. Sada spremite konfiguracijsku datoteku pritiskom na + x slijedi I i .

Sada možete stvoriti potrebne baze podataka korisnika na sljedeći način:

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

Kada završite, ponovno pokrenite Apache HTTP poslužitelj sa sljedećom naredbom:

$sudosystemctl ponovno pokrenite apache2

Sada bi svako spremište Git trebalo imati svoj skup korisnika koji mu mogu pristupiti.

Dakle, tako konfigurirate Git poslužitelj s Apache HTTP poslužiteljem na Ubuntuu. Hvala što ste pročitali ovaj članak.