Configurați Git Server cu HTTP pe Ubuntu

Configure Git Server With Http 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 Git Smart HTTP pe Ubuntu cu serverul HTTP Apache. Deci sa începem.

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ă:



$sudoactualizare aptă



Cache-ul depozitului de pachete APT trebuie actualizat.





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



$sudoaptinstalare mergeapache2 apache2-utils

Acum, apăsați ȘI ș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ă:

$sudoa2enmodenvcgialiasrescrie

Modulele Apache necesare ar trebui să fie activate.

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

$sudo mkdir /Unde/www/merge

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/site-uri disponibile/git.conf

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

<VirtualHost*:80>
Webmaster ServerAdmin@gazdă locală

SetEnv GIT_PROJECT_ROOT<puternic> /Unde/www/mergeputernic>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/merge/ /usr/lib/git-core/git-http-backend/

Alias/merge /Unde/www/merge

<Director/usr/lib/git-core>
Opțiuni + ExecCGI-MultiViews+ SymLinksIfOwnerMatch
AllowOverride Nici unul
Solicitați toate acordate
Director>

DocumentRoot/Unde/www/html

<Director/Unde/www>
Opțiuni Indexuri FollowSymLinks MultiViews
AllowOverride Nici unul
Solicitați toate acordate
Director>


Jurnal de erori$ {APACHE_LOG_DIR}/eroare.log
LogLevel avertizează
CustomLog$ {APACHE_LOG_DIR}/access.log combinat
VirtualHost>

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

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

$sudoa2dissite 000-default.conf

Configurarea implicită a site-ului ar trebui să fie dezactivată.

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

$sudoa2ensite git.conf

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

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

$sudosystemctl 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/a.m/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}.merge'
CD '$ {GIT_DIR}/$ {REPO_NAME}.merge'

git init --doar &> /dev/nul
atingeregit-daemon-export-ok
cpcârlige/post-actualizare.sample hooks/post-actualizare
git confighttp.receivepackAdevărat
git update-server-info
chown -Rfwww-date: www-data'$ {GIT_DIR}/$ {REPO_NAME}.merge'
aruncat „Depozit Git”$ {REPO_NAME}'creat în$ {GIT_DIR}/$ {REPO_NAME}.merge'

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 ȘI și .

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

$sudo chmod+ x/usr/local/a.m/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ă:

$sudogit-create-repo.shTest

Depozitul Git Test ar trebui creat.

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

$ipla

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 clonahttp://192.168.21.208/merge/test.go

Depozitul Git Test ar trebui clonate.

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

$CDTest/
$aruncat 'Salut Lume' >Buna ziua
$git add.
$git commit -m „comitere inițială”

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

$git pushorigine

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/site-uri disponibile/git.conf

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

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

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 ȘI ș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ă:

$sudohtpasswd-c /etc./apache2/git.passwd 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 Apache HTTP cu următoarea comandă:

$sudosystemctl 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 diferite baze de date de utilizatori 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, mai întâi editați git.conf fișier de configurare a site-ului, după cum urmează:

$sudo nano /etc./apache2/site-uri disponibile/git.conf

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

<Locație/merge/test.go>
AuthType Basic
AuthName„Verificare Git”
AuthUserFile/etc./apache2/git.test.passwd
Solicitați un utilizator valid
Locație>

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

Pentru fiecare depozit Git Test și test2 , la 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 ȘI și .

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

$sudohtpasswd-c /etc./apache2/git.test.passwd NUME DE UTILIZATOR
$sudohtpasswd-c /etc./apache2/git.test2.passwd NUME DE UTILIZATOR

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

$sudosystemctl 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.