Installere Git og Apache HTTP Server:
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:
$ sudo apt oppdatering
APT-pakkelagerbufferen bør oppdateres.
Installer nå Git og Apache med følgende kommando:
$ sudo apt installere git apache2 apache2-utils
Trykk nå Y og trykk deretter på
Git og Apache skal installeres.
Konfigurere Apache HTTP-server for Git:
Aktiver nå Apache mod_env, mod_cgi, mod_alias og mod_rewrite moduler med følgende kommando:
$ sudo a2enmod env cgi alias omskriv
De nødvendige Apache-modulene skal være aktivert.
Lag nå en ny katalog / var / www / git for å holde alle Git-arkivene med følgende kommando:
$ sudo mkdir / var / www / git
Opprett nå en ny konfigurasjon av Apache-nettstedet / etc / apache2 / sites-available / git.konf for Git med følgende kommando:
$ sudo nano / etc / apache2 / nettsteder-tilgjengelig / git.konf
Skriv nå 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 + SymLinksIfOwnerMatch
Tillat overstyring Ingen
Krever alt gitt
DocumentRoot / var / www / html
Alternativer Indekser FollowSymLinks MultiViews
Tillat overstyring 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 konfigurasjonsfilen ved å trykke på
Deaktiver nå standard Apache-nettstedskonfigurasjon med følgende kommando:
$ sudo a2dissite 000-standard.konf
Standard nettstedskonfigurasjon bør deaktiveres.
Aktiver nå Git-nettstedskonfigurasjonen med følgende kommando:
$ sudo a2ensite git.konf
Konfigurasjonen av Git-nettstedet skal være aktivert.
Start Apache HTTP-server på nytt med følgende kommando:
$ sudo systemctl start apache2 på nytt
For å starte et nytt Git-depot tilgjengelig via Apache HTTP-serveren, må du kjøre noen få kommandoer. Du vil ikke gjøre det samme om og om igjen bare for å opprette et nytt Git-arkiv. Så jeg bestemte meg for å skrive et skallskript for det formålet.
Først oppretter du et nytt skallskript / usr / local / bin / git-create-repo.sh med følgende kommando:
$ sudo nano / usr / local / bin / git-create-repo.sh
Nå skriver du inn følgende kodelinjer i skallskriptet.
#!/ 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
berør git-daemon-export-ok
cp kroker / etter oppdatering.prøve kroker / etter oppdatering
git config http.mottakspakke sant
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
ekko "Git-depotet" $ REPO_NAME "opprettet i $ GIT_DIR / $ REPO_NAME.git "
Når du har skrevet inn disse linjene, skal skallskriptet se slik ut. Lagre filen nå ved å trykke på
Legg nå til utførelsestillatelse til skallskriptet med følgende kommando:
$ sudo chmod + x / usr / local / bin / git-create-repo.sh
Opprett nå et nytt Git-depot test i Git-prosjektets rot / var / www / git bruker git-create-repo.sh skallskript som følger:
$ sudo git-create-repo.sh test
Git-depotet test skal opprettes.
For å få tilgang til Git-depotet trenger du IP-adressen til Git HTTP-serveren.
$ ip aSom du kan se, er IP-adressen i mitt tilfelle 192.168.21.208. Det vil være annerledes for deg. Bytt 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-depot.
$ cd test /$ echo "Hello World"> hei
$ git add .
$ git commit -m 'initial commit'
Last opp endringene til test Git repository på serveren som følger:
$ git push opprinnelseSom du ser, blir endringene lastet opp helt fint.
Konfigurere brukerautentisering:
I denne delen skal jeg vise deg hvordan du konfigurerer brukerautentisering på Git-arkivene på serveren.
Først redigerer du 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
Krev gyldig bruker
Her, / etc / apache2 / git.passwd er brukerdatabasefilen.
Den endelige konfigurasjonsfilen skal se ut som følger. Lagre filen nå ved å trykke på
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 nå inn et nytt passord for den nye brukeren og trykk
Skriv inn samme passord og trykk på
Brukerpassordparet skal legges til databasen.
Start Apache HTTP-server på nytt med følgende kommando:
$ sudo systemctl start apache2 på nytt
Nå, hvis du prøver å klone test repository igjen, blir du bedt om å godkjenne som du kan se på skjermbildet nedenfor.
Når du har godkjent med brukernavnet og passordet, vil du kunne få tilgang til Git-depotet.
Selv når du prøver å skyve eller trekke fra Git-arkivet, blir du også bedt om brukernavn og passord.
Når du har godkjent, vil push / pull fungere.
Du kan også angi en annen brukerdatabase for forskjellige Git-arkiver. Dette kan være nyttig for prosjekter der mange mennesker jobber sammen på samme Git-arkiv.
For å angi Git-lagringsmessig autentisering må du først redigere git.konf nettstedskonfigurasjonsfil som følger:
$ sudo nano / etc / apache2 / nettsteder-tilgjengelig / git.konfLegg nå til følgende linjer i konfigurasjonsfilen.
AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.test.passwd
Krev gyldig bruker
AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.test2.passwd
Krev gyldig bruker
For hvert Git-depot test og test2, en
Den endelige konfigurasjonsfilen skal se ut som følger. Lagre konfigurasjonsfilen ved å trykke på
Nå kan du opprette nødvendige brukerdatabaser som følger:
$ sudo htpasswd -c / etc / apache2 / git.test.passwd USERNAME$ sudo htpasswd -c / etc / apache2 / git.test2.passwd USERNAME
Når du er ferdig, start Apache HTTP-serveren på nytt med følgende kommando:
$ sudo systemctl start apache2 på nytt
Nå skal hvert Git-arkiv 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 leser denne artikkelen.