Nakonfigurujte server Git s HTTP na Ubuntu

Configure Git Server With Http Ubuntu



Ak chcete nastaviť server Git HTTP na súkromnú prácu s úložiskami Git, potom je tento článok pre vás. V tomto článku vám ukážem, ako nakonfigurovať server Git Smart HTTP na serveri Ubuntu so serverom Apache HTTP. Začnime teda.

Balíky Git a Apache sú k dispozícii v oficiálnom úložisku balíkov Ubuntu. Môžete ho teda ľahko nainštalovať pomocou správcu balíkov APT.







Najprv aktualizujte vyrovnávaciu pamäť archívu balíkov APT pomocou nasledujúceho príkazu:



$sudovýstižná aktualizácia



Vyrovnávacia pamäť archívu balíkov APT by mala byť aktualizovaná.





Teraz nainštalujte Git a Apache pomocou nasledujúceho príkazu:



$sudovýstižnýInštalácia choďapache2 apache2-utils

Teraz stlačte A a potom stlačte na potvrdenie inštalácie.

Mali by byť nainštalované Git a Apache.

Konfigurácia servera Apache HTTP Server pre Git:

Teraz povoľte Apache mod_env , mod_cgi , mod_alias a mod_rewrite moduly s nasledujúcim príkazom:

$sudoa2enmodenvcgiprezývkaprepísať

Mali by byť povolené požadované moduly Apache.

Teraz vytvorte nový adresár /var/www/git za uchovávanie všetkých úložísk Git pomocou nasledujúceho príkazu:

$sudo mkdir /kde/www/choď

Teraz vytvorte novú konfiguráciu webu Apache /etc/apache2/sites-available/git.conf pre Git s nasledujúcim príkazom:

$sudo nano /atď/apache2/stránky-dostupné/git.conf

Teraz zadajte do konfiguračného súboru nasledujúce riadky:

<VirtualHost*:80>
ServerAdmin webmaster@localhost

SetEnv GIT_PROJECT_ROOT<silný> /kde/www/choďsilný>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/choď/ /usr/lib/git-core/git-http-backend/

Prezývka/choď /kde/www/choď

<Adresár/usr/lib/git-core>
Možnosti +ExecCGI-Viacnásobné zobrazenie+SymLinksIfOwnerMatch
AllowOverride None
Vyžadovať všetky udelené
Adresár>

DocumentRoot/kde/www/html

<Adresár/kde/www>
Možnosti Indexy FollowSymLinks MultiViews
AllowOverride None
Vyžadovať všetky udelené
Adresár>


ErrorLog$ {APACHE_LOG_DIR}/error.log
LogLevel varovať
CustomLog$ {APACHE_LOG_DIR}/access.log kombinovaný
VirtualHost>

Konečný konfiguračný súbor vyzerá nasledovne. Teraz uložte konfiguračný súbor stlačením + X nasledovaný A a .

Teraz deaktivujte predvolenú konfiguráciu stránok Apache pomocou nasledujúceho príkazu:

$sudoa2dissite 000-default.conf

Predvolená konfigurácia webu by mala byť zakázaná.

Teraz povoľte konfiguráciu webu Git pomocou nasledujúceho príkazu:

$sudoa2ensite git.conf

Konfigurácia webu Git by mala byť povolená.

Teraz reštartujte server Apache HTTP pomocou nasledujúceho príkazu:

$sudoreštartovať systém apache2

Aby ste mohli zaviesť nové úložisko Git prístupné cez server Apache HTTP, budete musieť spustiť niekoľko príkazov. Nechcete robiť to isté znova a znova, len aby ste vytvorili nové úložisko Git. Preto som sa rozhodol napísať na tento účel shell skript.

Najprv vytvorte nový skript shellu /usr/local/bin/git-create-repo.sh s nasledujúcim príkazom:

$sudo nano /usr/miestny/dopoludnia/git-create-repo.sh

Teraz do skriptu shell zadajte nasledujúce riadky kódov.

#!/bin/bash

GIT_DIR='/var/www/git'
REPO_NAME=1 dolár

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

git init -práve &> /dev/nulový
dotýkať sagit-daemon-export-ok
cpháčiky/po aktualizácii. ukážkové háčiky/po aktualizácii
git confighttp.receivepackpravda
git update-server-info
žrádlo -Rfwww-údaje: www-údaje'$ {GIT_DIR}/$ {REPO_NAME}.go '
zahodil „Úložisko Git“$ {REPO_NAME}'vytvorený v$ {GIT_DIR}/$ {REPO_NAME}.go '

Po zadaní týchto riadkov by mal shell skript vyzerať nasledovne. Teraz súbor uložte stlačením + X nasledovaný A a .

Teraz pridajte povolenie na spustenie do skriptu shell pomocou nasledujúceho príkazu:

$sudo chmod+ x/usr/miestny/dopoludnia/git-create-repo.sh

Teraz vytvorte nové úložisko Git test v koreňovom adresári projektu Git /var/www/git pomocou git-create-repo.sh shell skript takto:

$sudogit-create-repo.shtest

Úložisko Git test by mal byť vytvorený.

Na prístup k úložisku Git potrebujete IP adresu servera Git HTTP.

$ipdo

Ako vidíte, adresa IP v mojom prípade je 192,168,21,208 . U teba to bude iné. Odteraz ho nahraďte svojim.

Teraz môžete klonovať súbor test Úložisko Git nasledovne:

$git klonhttp://192,168,21,208/choď/test.go

Úložisko Git test by mali byť klonované.

Teraz pridajme nové potvrdenie do súboru test Úložisko Git.

$CDtest/
$zahodil 'Hello World' >Ahoj
$git pridať.
$git commit -m „počiatočné potvrdenie“

Teraz nahrajte zmeny do súboru test Úložisko Git na serveri takto:

$git pushpôvod

Ako vidíte, zmeny sú odoslané v poriadku.

Konfigurácia autentifikácie používateľa:

V tejto časti vám ukážem, ako nakonfigurovať autentifikáciu používateľa v archívoch Git na serveri.

Najprv upravte súbor git.conf konfiguračný súbor webu nasledovne:

$sudo nano /atď/apache2/stránky-dostupné/git.conf

Teraz pridajte do konfiguračného súboru nasledujúcu časť.

<LocationMatch/choď/.* .dostať>
AuthType Basic
AuthName„Overenie Git“
AuthUserFile/atď/apache2/git.passwd
Vyžadovať platného používateľa
LocationMatch>

Tu, /etc/apache2/git.passwd je súbor databázy užívateľov.

Konečný konfiguračný súbor by mal vyzerať nasledovne. Teraz súbor uložte stlačením + X nasledovaný A a .

Teraz vytvorte nový súbor databázy užívateľov /etc/apache2/git.passwd a pridajte nového používateľa (povedzme shovon ) do databázového súboru nasledovne:

$sudohtpasswd-c /atď/apache2/git.passwd shovon

Teraz zadajte nové heslo pre nového používateľa a stlačte .

Znova zadajte rovnaké heslo a stlačte .

Dvojica používateľské heslo by mala byť pridaná do databázy.

Teraz reštartujte server Apache HTTP pomocou nasledujúceho príkazu:

$sudoreštartovať systém apache2

Teraz, ak sa pokúsite klonovať súbor test úložisko znova, budete požiadaní o autentifikáciu, ako vidíte na obrázku nižšie.

Akonáhle sa autentifikujete pomocou používateľského mena a hesla, budete mať prístup do archívu Git.

Aj keď sa pokúsite tlačiť alebo ťahať z úložiska Git, bude sa od vás tiež vyžadovať zadanie používateľského mena a hesla.

Akonáhle sa autentifikujete, push/pull bude fungovať.

Môžete tiež nastaviť inú databázu používateľov pre rôzne archívy Git. To môže byť užitočné pre projekty, kde veľa ľudí spolupracuje na rovnakom úložisku Git.

Ak chcete nastaviť autentifikáciu v úložisku Git, najskôr upravte súbor git.conf konfiguračný súbor webu nasledovne:

$sudo nano /atď/apache2/stránky-dostupné/git.conf

Teraz do konfiguračného súboru pridajte nasledujúce riadky.

<Poloha/choď/test.go>
AuthType Basic
AuthName„Overenie Git“
AuthUserFile/atď/apache2/git.test.passwd
Vyžadovať platného používateľa
Poloha>

<Poloha/choď/test2.git>
AuthType Basic
AuthName„Overenie Git“
AuthUserFile/atď/apache2/git.test2.passwd
Vyžadovať platného používateľa
Poloha>

Pre každé úložisko Git test a test 2 , do je definovaná sekcia. Pre každé úložisko Git sa používa iný súbor databázy užívateľov.

Konečný konfiguračný súbor by mal vyzerať nasledovne. Teraz uložte konfiguračný súbor stlačením + X nasledovaný A a .

Teraz môžete vytvoriť požadované užívateľské databázy nasledovne:

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

Akonáhle budete hotoví, reštartujte server Apache HTTP pomocou nasledujúceho príkazu:

$sudoreštartovať systém apache2

Teraz by každé úložisko Git malo mať svoju vlastnú skupinu používateľov, ktorí k nemu majú prístup.

Takto teda nakonfigurujete server Git so serverom Apache HTTP v systéme Ubuntu. Ďakujem za prečítanie tohto článku.