Git

Configurați Git Server cu HTTP pe Ubuntu

Configurați Git Server cu HTTP pe Ubuntu
Dacă doriți să configurați un server HTTP Git pentru a lucra cu depozite Git în mod privat, atunci acest articol este pentru dvs.  În acest articol, vă voi arăta cum să configurați un server HTTP Git Smart pe Ubuntu cu serverul HTTP Apache. Asadar, haideti sa începem.

Instalarea serverului HTTP Git și Apache:

Pachetele Git și Apache sunt disponibile în depozitul oficial de pachete Ubuntu. Deci, îl puteți instala cu ușurință cu managerul de pachete APT.

Mai întâi, actualizați memoria cache a depozitului de pachete APT cu următoarea comandă:

$ sudo apt actualizare

Cache-ul depozitului de pachete APT ar trebui actualizat.

Acum, instalați Git și Apache cu următoarea comandă:

$ sudo apt install git apache2 apache2-utils

Acum, apăsați Da și apoi apăsați pentru a confirma instalarea.

Git și Apache ar trebui instalate.

Configurarea serverului Apache HTTP pentru Git:

Acum, activați Apache mod_env, mod_cgi, mod_alias și mod_rewrite module cu următoarea comandă:

$ sudo a2enmod env cgi alias rescrie

Modulele Apache necesare ar trebui activate.

Acum, creați un nou director / var / www / git pentru păstrarea tuturor depozitelor Git cu următoarea comandă:

$ sudo mkdir / var / www / git

Acum, creați o nouă configurație a site-ului Apache / etc / apache2 / sites-available / git.conf pentru Git cu următoarea comandă:

$ sudo nano / etc / apache2 / sites-available / git.conf

Acum, introduceți următoarele linii în fișierul de configurare:


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
 

Opțiuni + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Nici unul
Solicitați toate acordate

 
DocumentRoot / var / www / html
 

Opțiuni Indexuri FollowSymLinks MultiViews
AllowOverride Nici unul
Solicitați toate acordate

 
 
ErrorLog $ APACHE_LOG_DIR / eroare.Buturuga
LogLevel avertizează
CustomLog $ APACHE_LOG_DIR / acces.jurnal combinat

Fișierul de configurare final arată după cum urmează. Acum, salvați fișierul de configurare apăsând + X urmată de Da și .

Acum, dezactivați configurația implicită a site-ului Apache cu următoarea comandă:

$ sudo a2dissite 000-implicit.conf

Configurația implicită a site-ului ar trebui să fie dezactivată.

Acum, activați configurația site-ului Git cu următoarea comandă:

$ sudo a2ensite git.conf

Configurarea site-ului Git ar trebui să fie activată.

Acum, reporniți serverul Apache HTTP cu următoarea comandă:

$ sudo systemctl reporniți apache2

Pentru a porni un nou depozit Git accesibil pe serverul HTTP Apache, va trebui să executați câteva comenzi. Nu doriți să faceți același lucru din nou și din nou doar pentru a crea un nou depozit Git. Deci, am decis să scriu un script shell în acest scop.

Mai întâi, creați un nou script shell / usr / local / bin / git-create-repo.SH cu următoarea comandă:

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

Acum, tastați următoarele linii de coduri în scriptul shell.

#!/ 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
atingeți git-daemon-export-ok
cp hooks / post-update.cârlige eșantion / post-actualizare
git config http.primi pachet adevărat
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
ecou „Depozitul Git„ $ REPO_NAME ”creat în $ GIT_DIR / $ REPO_NAME.git "

După ce introduceți aceste linii, scriptul shell ar trebui să arate după cum urmează. Acum, salvați fișierul apăsând + X urmată de Da și .

Acum, adăugați permisiunea de executare la scriptul shell cu următoarea comandă:

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

Acum, creați un nou depozit Git Test în rădăcina proiectului Git / var / www / git folosind git-create-repo.SH script shell după cum urmează:

$ sudo git-create-repo.testul sh

Depozitul Git Test ar trebui creat.

Pentru a accesa depozitul Git, aveți nevoie de adresa IP a serverului HTTP Git.

$ ip a

După cum puteți vedea, adresa IP în cazul meu este 192.168.21.208. Va fi diferit pentru tine. Înlocuiți-l cu al vostru de acum înainte.

Acum, puteți clona fișierul Test Depozitul Git după cum urmează:

$ git clonează http: // 192.168.21.208 / git / test.git

Depozitul Git Test ar trebui clonate.

Acum, să adăugăm un nou commit la Test Depozit Git.

$ cd test /
$ echo "Hello World"> salut
$ git add .
$ git commit -m 'commit inițial'

Acum, încărcați modificările în Test Depozitul Git de pe server după cum urmează:

$ git push origin

După cum puteți vedea, modificările sunt încărcate foarte bine.

Configurarea autentificării utilizatorului:

În această secțiune, vă voi arăta cum să configurați autentificarea utilizatorului în depozitele Git de pe server.

Mai întâi, editați fișierul git.conf fișier de configurare a site-ului, după cum urmează:

$ sudo nano / etc / apache2 / sites-available / git.conf

Acum, adăugați următoarea secțiune în fișierul de configurare.


AuthType Basic
AuthName „Verificare Git”
AuthUserFile / etc / apache2 / git.passwd
Solicitați un utilizator valid

Aici, / etc / apache2 / git.passwd este fișierul bazei de date utilizator.

Fișierul de configurare final ar trebui să arate după cum urmează. Acum, salvați fișierul apăsând + X urmată de Da și .

Acum, creați un fișier de bază de date de utilizator nou / etc / apache2 / git.passwd și adăugați un utilizator nou (să spunem shovon) în fișierul bazei de date după cum urmează:

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

Acum, introduceți o nouă parolă pentru noul utilizator și apăsați .

Introduceți din nou aceeași parolă și apăsați .

Perechea utilizator-parolă trebuie adăugată la baza de date.

Acum, reporniți serverul HTTP Apache cu următoarea comandă:

$ sudo systemctl reporniți apache2

Acum, dacă încercați să clonați Test din nou, vi se va cere să vă autentificați după cum puteți vedea în captura de ecran de mai jos.

După ce vă autentificați folosind numele de utilizator și parola, veți putea accesa depozitul Git.

Chiar și atunci când încercați să împingeți sau să trageți din depozitul Git, vi se va cere și numele de utilizator și parola.

După autentificare, push / pull va funcționa.

De asemenea, puteți seta baze de date diferite pentru diferite depozite Git. Acest lucru ar putea fi util pentru proiectele în care o mulțime de oameni lucrează împreună la același depozit Git.

Pentru a seta autentificarea Git depozitare, editați mai întâi git.conf fișier de configurare a site-ului după cum urmează:

$ sudo nano / etc / apache2 / sites-available / git.conf

Acum, adăugați următoarele linii în fișierul de configurare.


AuthType Basic
AuthName „Verificare Git”
AuthUserFile / etc / apache2 / git.Test.passwd
Solicitați un utilizator valid

 

AuthType Basic
AuthName „Verificare Git”
AuthUserFile / etc / apache2 / git.test2.passwd
Solicitați un utilizator valid

Pentru fiecare depozit Git Test și test2, A secțiunea este definită. Pentru fiecare depozit Git este utilizat un fișier de baze de date de utilizator diferit.

Fișierul de configurare final ar trebui să arate după cum urmează. Acum, salvați fișierul de configurare apăsând + X urmată de Da și .

Acum, puteți crea bazele de date de utilizator necesare după cum urmează:

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

După ce ați terminat, reporniți serverul HTTP Apache cu următoarea comandă:

$ sudo systemctl reporniți apache2

Acum, fiecare depozit Git ar trebui să aibă propriul set de utilizatori care îl pot accesa.

Deci, așa configurați Git Server cu Apache HTTP Server pe Ubuntu. Vă mulțumim că ați citit acest articol.

Cele mai bune jocuri Oculus App Lab
Dacă sunteți proprietarul căștilor Oculus, atunci trebuie să fiți informați despre încărcarea laterală. Încărcarea laterală este procesul de instalare...
Top 10 jocuri de jucat pe Ubuntu
Platforma Windows a fost una dintre platformele dominante pentru jocuri din cauza procentului imens de jocuri care se dezvoltă astăzi pentru a sprijin...
Cele mai bune 5 jocuri arcade pentru Linux
În zilele noastre, computerele sunt mașini serioase folosite pentru jocuri. Dacă nu puteți obține noul scor mare, veți ști la ce mă refer. În această ...