Git- og Apache -pakker er tilgjengelige i det offisielle pakkelagdet til Ubuntu. Så du kan enkelt installere den med Apt Package Manager.
Oppdater først Apt Package Repository Cache med følgende kommando:
$ sudo apt oppdatering
Apt Package Repository Cache skal oppdateres.
Nå, installer Git og Apache med følgende kommando:
$ sudo apt install git apache2 apache2-utils
Nå, trykk Y Og trykk deretter For å bekrefte installasjonen.
Git og Apache bør installeres.
Konfigurere Apache HTTP -server for GIT:
Aktiver Apache nå mod_env, mod_cgi, mod_alias og mod_rewrite Moduler med følgende kommando:
$ sudo a2enmod env cgi alias omskrives
De nødvendige Apache -modulene skal være aktivert.
Lag nå en ny katalog /var/www/git For å holde alle Git -lagrene med følgende kommando:
$ sudo mkdir/var/www/git
Lag nå en ny konfigurasjon av Apache Site /etc/apache2/nettsteder-tilgjengelig/git.konf For git med følgende kommando:
$ sudo nano/etc/apache2/nettsteder-tilgjengelig/git.konf
Skriv inn følgende linjer i konfigurasjonsfilen:
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
Alternativer +execcgi -multiViews +symlinksifoWreMatch
Tillat ingen
Krever alt gitt
Documentroot/var/www/html
Alternativerindekser følger Symlinks Multiviews
Tillat ingen
Krever alt gitt
Errorlog $ apache_log_dir/feil.Logg
LogLevel advarer
CustomLog $ apache_log_dir/tilgang.logg kombinert
Den endelige konfigurasjonsfilen ser ut som følger. Lagre nå konfigurasjonsfilen ved å trykke på + X etterfulgt av Y og .
Deaktiver nå standard Apache Site -konfigurasjon med følgende kommando:
$ sudo a2dissite 000-default.konf
Standard nettstedkonfigurasjon skal deaktiveres.
Aktiver nå Git Site -konfigurasjonen med følgende kommando:
$ sudo a2ensite git.konf
Konfigurasjonen av Git -nettstedets bør aktiveres.
Nå, start Apache HTTP -serveren med følgende kommando:
$ sudo SystemCTL Restart Apache2
For å starte opp et nytt Git -depot tilgjengelig over Apache HTTP -serveren, må du kjøre noen få kommandoer. Du vil ikke gjøre det samme om og om igjen bare for å lage et nytt Git -depot. Så jeg bestemte meg for å skrive et skallskript for det formålet.
Lag først et nytt skallskript /usr/local/bin/git-create-repo.sh med følgende kommando:
$ sudo nano/usr/local/bin/git-create-repo.sh
Skriv inn følgende linjer med koder i skallskriptet.
#!/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 - -fair &> /dev /null
Touch git-daemon-export-ok
CP-kroker/post-oppdatering.Eksempelkroker/post-oppdatering
git config http.motta Pack True
git oppdateringsserver-info
Chown -rf www-data: www-data "$ git_dir/$ repo_name.Git "
Echo "Git Repository '$ repo_name' opprettet i $ git_dir/$ repo_name.Git "
Når du skriver inn disse linjene, skal skallskriptet se ut som følger. Lagre filen nå ved å trykke på + X etterfulgt av Y og .
Legg nå utfør tillatelse til Shell -skriptet med følgende kommando:
$ sudo chmod +x/usr/local/bin/git-create-repo.sh
Lag nå et nytt Git -depot test I Git -prosjektroten /var/www/git bruker git-create-repo.sh Shell -skript som følger:
$ sudo git-create-repo.SH -test
Git -depotet test bør opprettes.
For å få tilgang til Git -depotet, trenger du IP -adressen til Git HTTP -serveren.
$ ip a
Som du ser er IP -adressen i mitt tilfelle 192.168.21.208. Det vil være annerledes for deg. Erstatt den med din fra nå av.
Nå kan du klone test Git Repository som følger:
$ git klon http: // 192.168.21.208/git/test.git
Git -depotet test skal klones.
La oss nå legge til en ny forpliktelse til test Git Repository.
$ CD -test/
$ ECHO "Hello World"> Hei
$ git Legg til .
$ git commit -m 'initial commit'
Last opp endringene til test Git -depot på serveren som følger:
$ git push origin
Som du kan se, blir endringene lastet opp helt fint.
Konfigurere brukergodkjenning:
I denne delen skal jeg vise deg hvordan du konfigurerer brukergodkjenning på Git -lagringene på serveren.
Først, rediger git.konf Nettstedskonfigurasjonsfil som følger:
$ sudo nano/etc/apache2/nettsteder-tilgjengelig/git.konf
Legg nå til følgende avsnitt i konfigurasjonsfilen.
AuthType Basic
Authname "Git Verification"
AuthUserFile/etc/apache2/git.Passwd
Krever gyldig bruker
Her, /etc/apache2/git.Passwd er brukerdatabasefilen.
Den endelige konfigurasjonsfilen skal se ut som følger. Lagre filen nå ved å trykke på + X etterfulgt av Y og .
Opprett nå en ny brukerdatabasefil /etc/apache2/git.Passwd og legg til en ny bruker (la oss si Shovon) til databasefilen som følger:
$ sudo htpasswd -c/etc/apache2/git.Passwd Shovon
Skriv inn et nytt passord for den nye brukeren og trykk nå .
Skyp det samme passordet og trykk på nytt .
Brukerpassordparet skal legges til i databasen.
Nå, start Apache HTTP -serveren med følgende kommando:
$ sudo SystemCTL Restart Apache2
Nå, hvis du prøver å klone test depot igjen, vil du bli bedt om å autentisere som du kan se på skjermdumpen nedenfor.
Når du autentiserer deg ved hjelp av brukernavnet og passordet, vil du kunne få tilgang til Git -depotet.
Selv når du prøver å presse eller trekke fra Git -depotet, vil du også bli bedt om brukernavn og passord.
Når du autentiserer, fungerer Push/Pull.
Du kan også angi forskjellige brukerdatabase for forskjellige Git -depoter. Dette kan være nyttig for prosjekter der mange mennesker jobber sammen på samme Git -depot.
For å angi Git Repository-autentisering, rediger først git.konf Nettstedskonfigurasjonsfil som følger:
$ sudo nano/etc/apache2/nettsteder-tilgjengelig/git.konf
Legg nå til følgende linjer i konfigurasjonsfilen.
AuthType Basic
Authname "Git Verification"
AuthUserFile/etc/apache2/git.test.Passwd
Krever gyldig bruker
AuthType Basic
Authname "Git Verification"
AuthUserFile/etc/apache2/git.Test2.Passwd
Krever gyldig bruker
For hvert Git -depot test og Test2, en Seksjonen er definert. En annen brukerdatabasefil brukes til hvert Git -depot.
Den endelige konfigurasjonsfilen skal se ut som følger. Lagre nå konfigurasjonsfilen ved å trykke på + X etterfulgt av Y og .
Nå kan du opprette de nødvendige brukerdatabasene som følger:
$ sudo htpasswd -c/etc/apache2/git.test.PASSWD Brukernavn
$ sudo htpasswd -c/etc/apache2/git.Test2.PASSWD Brukernavn
Når du er ferdig, start Apache HTTP -serveren med følgende kommando:
$ sudo SystemCTL Restart Apache2
Nå skal hvert Git -depot ha sitt eget sett med brukere som har tilgang til det.
Så det er slik du konfigurerer Git -serveren med Apache HTTP -server på Ubuntu. Takk for at du leste denne artikkelen.