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ćiSada 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.confSada 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.confZadana konfiguracija web mjesta trebala bi biti onemogućena.
Sada omogućite konfiguraciju web lokacije Git sa sljedećom naredbom:
$sudoa2ensite git.confTreba omogućiti konfiguraciju Git web stranice.
Sada ponovno pokrenite Apache HTTP poslužitelj sa sljedećom naredbom:
$sudosystemctl ponovno pokrenite apache2Da 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.shSada upišite sljedeće redove kodova u skriptu ljuske.
#!/bin/bashGIT_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.shSada, 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.shtestSpremište Git test treba stvoriti.
Za pristup Git spremištu potrebna vam je IP adresa Git HTTP poslužitelja.
$ipdoKao š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ćiSpremiš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 pushpodrijetloKao š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.confSada 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 shovonSada 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 apache2Ako 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.confSada 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 apache2Sada 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.