Git- och Apache -paket är tillgängliga i det officiella paketförvaret för Ubuntu. Så du kan enkelt installera det med APT -pakethanteraren.
Uppdatera först APT -paketets förvaringscache med följande kommando:
$sudolämplig uppdatering
APT -pakets lagringscache bör uppdateras.
Installera nu Git och Apache med följande kommando:
$sudobenägenInstallera gåapache2 apache2-utils
Nu, tryck OCH och tryck sedan på för att bekräfta installationen.
Git och Apache bör installeras.
Konfigurera Apache HTTP -server för Git:
Aktivera nu Apache mod_env , mod_cgi , mod_alias och mod_rewrite moduler med följande kommando:
$sudoa2enmodenvcgialiasskriva om
De nödvändiga Apache -modulerna bör vara aktiverade.
Skapa nu en ny katalog /var/www/git för att behålla alla Git -arkiv med följande kommando:
$sudo mkdir /var/www/gåSkapa nu en ny Apache -webbplatskonfiguration /etc/apache2/sites-available/git.conf för Git med följande kommando:
$sudo nano /etc/apache2/webbplatser tillgängliga/git.confSkriv nu in följande rader i konfigurationsfilen:
<VirtualHost*:80>ServerAdmin webbansvarig@lokal värd
SetEnv GIT_PROJECT_ROOT<stark> /var/www/gåstark>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/gå/ /usr/lib/git-core/git-http-backend/
Alias/gå /var/www/gå
<Katalog/usr/lib/git-core>
Alternativ +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Ingen
Kräv allt beviljat
Katalog>
DocumentRoot/var/www/html
<Katalog/var/www>
Alternativ Index Index FollowSymLinks MultiViews
AllowOverride Ingen
Kräv allt beviljat
Katalog>
Felloggen$ {APACHE_LOG_DIR}/felloggen
LogLevel varna
CustomLog$ {APACHE_LOG_DIR}/access.log kombinerat
VirtualHost>
Den slutliga konfigurationsfilen ser ut så här. Spara nu konfigurationsfilen genom att trycka på + X följd av OCH och .
Inaktivera nu standardkonfigurationen för Apache -webbplatsen med följande kommando:
$sudoa2dissite 000-default.confStandardwebbplatsens konfiguration bör inaktiveras.
Aktivera nu Git -webbplatsens konfiguration med följande kommando:
$sudoa2ensite git.confGit -webbplatsens konfiguration bör vara aktiverad.
Starta om Apache HTTP -servern med följande kommando:
$sudosystemctl startar om apache2För att starta ett nytt Git -arkiv som är tillgängligt via Apache HTTP -servern måste du köra några kommandon. Du vill inte göra samma sak om och om igen bara för att skapa ett nytt Git -arkiv. Så jag bestämde mig för att skriva ett skalskript för det ändamålet.
Skapa först ett nytt skalskript /usr/local/bin/git-create-repo.sh med följande kommando:
$sudo nano /usr/lokal/am/git-create-repo.shSkriv nu in följande koderader i skalskriptet.
#!/bin/bashGIT_DIR='/var/www/git'
REPO_NAME=$ 1
mkdir -s '$ {GIT_DIR}/$ {REPO_NAME}.gå'
CD '$ {GIT_DIR}/$ {REPO_NAME}.gå'
git init --bara &> /dev/null
Rörgit-daemon-export-ok
cpkrokar/efter uppdatering. provkrokar/efter uppdatering
git confighttp.receivepackSann
git update-server-info
chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.gå'
kastade ut 'Git -arkiv'$ {REPO_NAME}'skapat i$ {GIT_DIR}/$ {REPO_NAME}.gå'
När du har skrivit in dessa rader ska skalskriptet se ut så här. Spara nu filen genom att trycka på + X följd av OCH och .
Lägg nu till execute -behörighet till skalskriptet med följande kommando:
$sudo chmod+ x/usr/lokal/am/git-create-repo.shSkapa nu ett nytt Git -arkiv testa i Git -projektroten /var/www/git använda git-create-repo.sh skalskript enligt följande:
$sudogit-create-repo.shtestaGit -förvaret testa bör skapas.
För att komma åt Git -förvaret behöver du IP -adressen för Git HTTP -servern.
$iptillSom du kan se är IP -adressen i mitt fall 192.168.21.208 . Det blir annorlunda för dig. Ersätt den med din från och med nu.
Nu kan du klona testa Git -förvaret enligt följande:
$git klonhttp://192.168.21.208/gå/test.goGit -förvaret testa bör klonas.
Låt oss nu lägga till ett nytt åtagande till testa Git -arkiv.
$CDtesta/$kastade ut 'Hej världen' >Hej
$git lägg till.
$git begå -m 'första åtagande'
Ladda nu upp ändringarna till testa Git -förvaret på servern enligt följande:
$git pushursprungSom du kan se laddas ändringarna upp bra.
Konfigurera användarverifiering:
I det här avsnittet kommer jag att visa dig hur du konfigurerar användarautentisering på Git -lagren på servern.
Redigera först git.conf webbplatskonfigurationsfil enligt följande:
$sudo nano /etc/apache2/webbplatser tillgängliga/git.confLägg nu till följande avsnitt i konfigurationsfilen.
<LocationMatch/gå/.*.gå>AuthType Basic
AuthName'Git Verification'
AuthUserFile/etc/apache2/git.passwd
Kräv giltig användare
LocationMatch>
Här, /etc/apache2/git.passwd är användardatabasfilen.
Den slutliga konfigurationsfilen ska se ut så här. Spara nu filen genom att trycka på + X följd av OCH och .
Skapa nu en ny användardatabasfil /etc/apache2/git.passwd och lägg till en ny användare (låt oss säga shovon ) till databasfilen enligt följande:
$sudohtpasswd-c /etc/apache2/git.passwd shovonSkriv nu in ett nytt lösenord för den nya användaren och tryck på .
Skriv in samma lösenord igen och tryck på .
Användar-lösenordsparet bör läggas till i databasen.
Starta om Apache HTTP -servern med följande kommando:
$sudosystemctl startar om apache2Om du nu försöker klona testa repository igen, kommer du att bli ombedd att autentisera som du kan se på skärmdumpen nedan.
När du har verifierat med användarnamnet och lösenordet kommer du att kunna komma åt Git -förvaret.
Även när du försöker trycka eller dra från Git -förvaret kommer du också att bli ombedd att ange användarnamn och lösenord.
När du har autentiserat fungerar push/pull.
Du kan också ställa in olika användardatabaser för olika Git -arkiv. Detta kan vara användbart för projekt där många människor arbetar tillsammans på samma Git -arkiv.
För att ställa in Git-förvarsmässig autentisering, redigera först git.conf webbplatskonfigurationsfil enligt följande:
$sudo nano /etc/apache2/webbplatser tillgängliga/git.confLägg nu till följande rader i konfigurationsfilen.
<Plats/gå/test.go>AuthType Basic
AuthName'Git Verification'
AuthUserFile/etc/apache2/git.test.passwd
Kräv giltig användare
Plats>
<Plats/gå/test2.git>
AuthType Basic
AuthName'Git Verification'
AuthUserFile/etc/apache2/git.test2.passwd
Kräv giltig användare
Plats>
För varje Git -arkiv testa och test2 , till avsnitt definieras. En annan användardatabasfil används för varje Git -arkiv.
Den slutliga konfigurationsfilen ska se ut så här. Spara nu konfigurationsfilen genom att trycka på + X följd av OCH och .
Nu kan du skapa de nödvändiga användardatabaserna enligt följande:
$sudohtpasswd-c /etc/apache2/git.test.passwd ANVÄNDARNAMN$sudohtpasswd-c /etc/apache2/git.test2.passwd ANVÄNDARNAMN
När du är klar startar du om Apache HTTP -servern med följande kommando:
$sudosystemctl startar om apache2Nu bör varje Git -arkiv ha sin egen uppsättning användare som kan komma åt den.
Så det är så du konfigurerar Git Server med Apache HTTP Server på Ubuntu. Tack för att du läste denna artikel.