Installera Git och Apache HTTP-server:
Git- och Apache-paket finns i det officiella paketförvaret för Ubuntu. Så du kan enkelt installera det med APT-pakethanteraren.
Uppdatera först APT-paketets förvarscache med följande kommando:
$ sudo apt uppdatering
APT-paketets förvarscache bör uppdateras.
Installera nu Git och Apache med följande kommando:
$ sudo apt installera git apache2 apache2-utils
Nu, tryck Y och tryck sedan på
Git och Apache ska 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:
$ sudo a2enmod env cgi alias skrivas om
De nödvändiga Apache-modulerna ska vara aktiverade.
Skapa nu en ny katalog / var / www / git för att hålla alla Git-arkiv med följande kommando:
$ sudo mkdir / var / www / git
Skapa nu en ny Apache-webbplatskonfiguration / etc / apache2 / sites-available / git.konf för Git med följande kommando:
$ sudo nano / etc / apache2 / sites-available / git.konf
Skriv nu in följande rader i konfigurationsfilen:
ServerAdmin webbansvarig @ 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
Alternativ + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride None
Kräv alla beviljade
DocumentRoot / var / www / html
Alternativ Index FollowSymLinks MultiViews
AllowOverride None
Kräv alla beviljade
ErrorLog $ APACHE_LOG_DIR / fel.logga
LogLevel varnar
CustomLog $ APACHE_LOG_DIR / åtkomst.logg kombinerad
Den slutliga konfigurationsfilen ser ut som följer. Spara nu konfigurationsfilen genom att trycka på
Inaktivera nu Apache-webbplatskonfigurationen med följande kommando:
$ sudo a2dissite 000-standard.konf
Standardwebbplatskonfigurationen ska vara inaktiverad.
Aktivera nu Git-platskonfigurationen med följande kommando:
$ sudo a2ensite git.konf
Git-webbplatsens konfiguration bör vara aktiverad.
Starta nu om Apache HTTP-server med följande kommando:
$ sudo systemctl starta om apache2
För att starta ett nytt Git-arkiv 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 / local / bin / git-create-repo.sh
Skriv nu in följande rader med koder i skalskriptet.
#!/ bin / bashGIT_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
tryck på git-daemon-export-ok
cp krokar / efter uppdatering.provkrokar / efter uppdatering
git config http.mottagarpaket sant
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
ekot "Git-arkivet" $ REPO_NAME "skapat i $ GIT_DIR / $ REPO_NAME.git "
När du har skrivit in dessa rader ska skalskriptet se ut enligt följande. Spara nu filen genom att trycka på
Lägg nu till körbehörighet till skalskriptet med följande kommando:
$ sudo chmod + x / usr / local / bin / git-create-repo.sh
Skapa nu ett nytt Git-arkiv testa i Git-projektets rot / var / www / git använda git-create-repo.sh skalskript enligt följande:
$ sudo git-create-repo.sh test
Git-förvaret testa bör skapas.
För att komma åt Git-arkivet behöver du IP-adressen till Git HTTP-servern.
$ ip aSom du kan se är IP-adressen i mitt fall 192.168.21.208. Det kommer att vara annorlunda för dig. Byt ut det med ditt från och med nu.
Nu kan du klona testa Git-arkivet enligt följande:
$ git-klon http: // 192.168.21.208 / git / test.git
Git-förvaret testa bör klonas.
Låt oss nu lägga till ett nytt åtagande till testa Git-arkiv.
$ cd test /$ echo "Hello World"> hej
$ git add .
$ git commit -m 'initial commit'
Ladda nu upp ändringarna till testa Git-arkiv på servern enligt följande:
$ git push-ursprungSom du ser laddas ändringarna upp bra.
Konfigurera användarautentisering:
I det här avsnittet ska jag visa dig hur du konfigurerar användarautentisering på Git-arkiv på servern.
Redigera först git.konf webbplatskonfigurationsfil enligt följande:
$ sudo nano / etc / apache2 / sites-available / git.konf
Lägg nu till följande avsnitt i konfigurationsfilen.
AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.passwd
Kräver giltig användare
Här, / etc / apache2 / git.passwd är användardatabasfilen.
Den slutliga konfigurationsfilen ska se ut enligt följande. Spara nu filen genom att trycka på
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:
$ sudo htpasswd -c / etc / apache2 / git.passwd shovon
Skriv nu in ett nytt lösenord för den nya användaren och tryck på
Skriv in samma lösenord och tryck på
Användarlösenordsparet ska läggas till i databasen.
Starta nu om Apache HTTP-server med följande kommando:
$ sudo systemctl starta om apache2
Om du försöker klona den nu testa förvar igen kommer du att bli ombedd att autentisera som du kan se på skärmdumpen nedan.
När du väl har autentiserat med användarnamnet och lösenordet kommer du att kunna komma åt Git-arkivet.
Även när du försöker trycka eller dra från Git-arkivet 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 arbetar tillsammans på samma Git-arkiv.
För att ställa in Git-arkivmässig autentisering, redigera först git.konf webbplatskonfigurationsfil enligt följande:
$ sudo nano / etc / apache2 / sites-available / git.konfLägg nu till följande rader i konfigurationsfilen.
AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.testa.passwd
Kräver giltig användare
AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.test2.passwd
Kräver giltig användare
För varje Git-arkiv testa och test2, a
Den slutliga konfigurationsfilen ska se ut enligt följande. Spara nu konfigurationsfilen genom att trycka på
Nu kan du skapa de nödvändiga användardatabaserna enligt följande:
$ sudo htpasswd -c / etc / apache2 / git.testa.passwd USERNAME$ sudo htpasswd -c / etc / apache2 / git.test2.passwd USERNAME
När du är klar startar du om Apache HTTP-server med följande kommando:
$ sudo systemctl starta om apache2
Nu bör varje Git-arkiv ha sin egen uppsättning användare som kan komma åt den.
Så så konfigurerar du Git Server med Apache HTTP Server på Ubuntu. Tack för att du läste den här artikeln.