Git- og Apache -pakker er tilgjengelige i det offisielle pakkelageret til Ubuntu. Så du kan enkelt installere det med APT -pakkebehandleren.
Oppdater først APT -pakkelagerbufferen med følgende kommando:
$sudopassende oppdatering
APT -pakkelagerbufferen bør oppdateres.
Installer nå Git og Apache med følgende kommando:
$sudopassendeinstallere gåapache2 apache2-utils
Trykk nå OG og trykk deretter for å bekrefte installasjonen.
Git og Apache bør installeres.
Konfigurere Apache HTTP -server for Git:
Aktiver nå Apache mod_env , mod_cgi , mod_alias og mod_rewrite moduler med følgende kommando:
$sudoa2enmodenvcgialiasomskrive
De nødvendige Apache -modulene bør være aktivert.
Lag nå en ny katalog /var/www/git for å beholde alle Git -lagrene med følgende kommando:
$sudo mkdir /hvor/www/gåOpprett nå en ny Apache -nettstedskonfigurasjon /etc/apache2/sites-available/git.conf for Git med følgende kommando:
$sudo nano /etc/apache2/nettsteder tilgjengelig/git.confSkriv inn følgende linjer i konfigurasjonsfilen:
<VirtualHost*:80>ServerAdmin webmaster@lokal vert
SetEnv GIT_PROJECT_ROOT<sterk> /hvor/www/gåsterk>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/gå/ /usr/lib/git-core/git-http-backend/
Alias/gå /hvor/www/gå
<Katalog/usr/lib/git-core>
Alternativer +ExecCGI-MultiViews+SymLinksIfOwnerMatch
Tillat overstyring Ingen
Krev alt gitt
Katalog>
DocumentRoot/hvor/www/html
<Katalog/hvor/www>
Alternativer Indekser FollowSymLinks MultiViews
Tillat overstyring Ingen
Krev alt gitt
Katalog>
Feil logg$ {APACHE_LOG_DIR}/feil logg
LogLevel advare
CustomLog$ {APACHE_LOG_DIR}/access.log kombinert
VirtualHost>
Den endelige konfigurasjonsfilen ser slik ut. Lagre nå konfigurasjonsfilen ved å trykke + X etterfulgt av OG og .
Deaktiver nå standard Apache -nettstedskonfigurasjon med følgende kommando:
$sudoa2dissite 000-default.confStandard nettstedskonfigurasjon bør deaktiveres.
Aktiver nå Git -nettstedskonfigurasjonen med følgende kommando:
$sudoa2ensite git.confGit -nettstedskonfigurasjonen bør være aktivert.
Start nå Apache HTTP -server på nytt med følgende kommando:
$sudosystemctl starter apache2 på nyttFor å starte opp et nytt Git -depot som er tilgjengelig over Apache HTTP -serveren, må du kjøre noen få kommandoer. Du vil ikke gjøre det samme igjen og igjen bare for å lage et nytt Git -depot. Så jeg bestemte meg for å skrive et skallskript for dette formålet.
Opprett først et nytt skallskript /usr/local/bin/git-create-repo.sh med følgende kommando:
$sudo nano /usr/lokal/er/git-create-repo.shSkriv inn følgende koderader i skallskriptet.
#!/bin/bashGIT_DIR='/var/www/git'
REPO_NAME=$ 1
mkdir -s '$ {GIT_DIR}/$ {REPO_NAME}.gå'
CD '$ {GIT_DIR}/$ {REPO_NAME}.gå'
git init --bare &> /dev/null
ta pågit-daemon-export-ok
cpkroker/etter oppdatering. eksempel kroker/etter oppdatering
git confighttp.receivepackekte
git update-server-info
chown -Rfwww-data:www-data'$ {GIT_DIR}/$ {REPO_NAME}.gå'
kastet ut 'Git -depot'$ {REPO_NAME}'opprettet i$ {GIT_DIR}/$ {REPO_NAME}.gå'
Når du har skrevet inn disse linjene, skal skallskriptet se slik ut. Lagre filen ved å trykke på + X etterfulgt av OG og .
Legg nå til kjøringstillatelse til skallskriptet med følgende kommando:
$sudo chmod+ x/usr/lokal/er/git-create-repo.shOpprett nå et nytt Git -depot test i Git -prosjektroten /var/www/git bruker git-create-repo.sh shell script som følger:
$sudogit-create-repo.shtestGit -depotet test bør opprettes.
For å få tilgang til Git -depotet trenger du IP -adressen til Git HTTP -serveren.
$iptilSom du kan se, er IP -adressen i mitt tilfelle 192.168.21.208 . Det blir annerledes for deg. Bytt den ut med din fra nå av.
Nå kan du klone test Git -depot som følger:
$git klonhttp://192.168.21.208/gå/test.goGit -depotet test bør klones.
La oss nå legge til en ny forpliktelse til test Git -depot.
$CDtest/$kastet ut 'Hei Verden' >Hallo
$git legge til.
$git commit -m 'første forpliktelse'
Last nå opp endringene til test Git repository på serveren som følger:
$git pushopprinnelseSom du kan se, blir endringene lastet opp helt fint.
Konfigurere brukerautentisering:
I denne delen skal jeg vise deg hvordan du konfigurerer brukerautentisering på Git -lagrene på serveren.
Rediger først git.conf nettstedets konfigurasjonsfil som følger:
$sudo nano /etc/apache2/nettsteder tilgjengelig/git.confLegg nå til følgende seksjon i konfigurasjonsfilen.
<LocationMatch/gå/.*.gå>AuthType Basic
AuthName'Git -bekreftelse'
AuthUserFile/etc/apache2/git.passwd
Krev gyldig bruker
LocationMatch>
Her, /etc/apache2/git.passwd er brukerdatabasefilen.
Den endelige konfigurasjonsfilen skal se slik ut. Lagre filen ved å trykke på + X etterfulgt av OG og .
Lag nå en ny brukerdatabasefil /etc/apache2/git.passwd og legg til en ny bruker (la oss si shovon ) til databasefilen som følger:
$sudohtpasswd-c /etc/apache2/git.passwd shovonSkriv inn et nytt passord for den nye brukeren og trykk .
Skriv det samme passordet på nytt og trykk .
Bruker-passord-paret bør legges til databasen.
Start nå Apache HTTP -server på nytt med følgende kommando:
$sudosystemctl starter apache2 på nyttNå, hvis du prøver å klone test repository igjen, blir du bedt om å autentisere som du kan se på skjermbildet nedenfor.
Når du har godkjent brukernavnet og passordet, får du tilgang til Git -depotet.
Selv når du prøver å skyve eller trekke fra Git -depotet, blir du også bedt om brukernavn og passord.
Når du har godkjent, vil push/pull fungere.
Du kan også angi forskjellige brukerdatabaser for forskjellige Git -lagre. Dette kan være nyttig for prosjekter der mange mennesker jobber sammen på det samme Git -depotet.
For å angi Git-lagringsmessig autentisering må du først redigere git.conf nettstedets konfigurasjonsfil som følger:
$sudo nano /etc/apache2/nettsteder tilgjengelig/git.confLegg nå til følgende linjer i konfigurasjonsfilen.
<plassering/gå/test.go>AuthType Basic
AuthName'Git -bekreftelse'
AuthUserFile/etc/apache2/git.test.passwd
Krev gyldig bruker
plassering>
<plassering/gå/test2.git>
AuthType Basic
AuthName'Git -bekreftelse'
AuthUserFile/etc/apache2/git.test2.passwd
Krev gyldig bruker
plassering>
For hvert Git -depot test og test2 , til delen er definert. En annen brukerdatabasefil brukes for hvert Git -depot.
Den endelige konfigurasjonsfilen skal se slik ut. Lagre nå konfigurasjonsfilen ved å trykke + X etterfulgt av OG og .
Nå kan du opprette de nødvendige brukerdatabasene som følger:
$sudohtpasswd-c /etc/apache2/git.test.passwd BRUKERNAVN$sudohtpasswd-c /etc/apache2/git.test2.passwd BRUKERNAVN
Når du er ferdig, start Apache HTTP -server på nytt med følgende kommando:
$sudosystemctl starter apache2 på nyttNå bør hvert Git -depot ha sitt eget sett med brukere som har tilgang til det.
Så det er slik du konfigurerer Git Server med Apache HTTP Server på Ubuntu. Takk for at du leste denne artikkelen.