Git- og Apache -pakker er tilgængelige i det officielle pakkeopbevaringssted for Ubuntu. Så du kan nemt installere det med APT -pakkehåndteringen.
Opdater først APT -pakkelagringscachen med følgende kommando:
$sudopassende opdatering
APT -pakkens lagercache skal opdateres.
Installer nu Git og Apache med følgende kommando:
$sudopassendeinstallere gåapache2 apache2-utils
Tryk nu på OG og tryk derefter på for at bekræfte installationen.
Git og Apache skal installeres.
Konfiguration af Apache HTTP -server til Git:
Aktiver nu Apache mod_env , mod_cgi , mod_alias og mod_rewrite moduler med følgende kommando:
$sudoa2enmodenvcgialiasomskrive
De nødvendige Apache -moduler skal være aktiveret.
Opret nu et nyt bibliotek /var/www/git for at beholde alle Git -lagre med følgende kommando:
$sudo mkdir /hvor/www/gåOpret nu en ny Apache -webstedskonfiguration /etc/apache2/sites-available/git.conf til Git med følgende kommando:
$sudo nano /etc/apache2/tilgængelige websteder/git.confSkriv nu følgende linjer i konfigurationsfilen:
<VirtualHost*:80>ServerAdmin webmaster@lokal vært
SetEnv GIT_PROJECT_ROOT<stærk> /hvor/www/gåstærk>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/gå/ /usr/lib/git-core/git-http-backend/
Alias/gå /hvor/www/gå
<Vejviser/usr/lib/git-core>
Valgmuligheder +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Ingen
Kræv alt givet
Vejviser>
DocumentRoot/hvor/www/html
<Vejviser/hvor/www>
Indstillinger Indekser FollowSymLinks MultiViews
AllowOverride Ingen
Kræv alt givet
Vejviser>
Fejllog$ {APACHE_LOG_DIR}/error.log
LogLevel advare
CustomLog$ {APACHE_LOG_DIR}/access.log kombineret
VirtualHost>
Den endelige konfigurationsfil ser således ud. Gem nu konfigurationsfilen ved at trykke på + x efterfulgt af OG og .
Deaktiver nu standardkonfigurationen af Apache -webstedet med følgende kommando:
$sudoa2dissite 000-default.confStandardwebstedskonfigurationen skal deaktiveres.
Aktiver nu Git -stedskonfigurationen med følgende kommando:
$sudoa2ensite git.confGit -webstedskonfigurationen skal være aktiveret.
Genstart nu Apache HTTP -server med følgende kommando:
$sudosystemctl genstart apache2For at bootstrap et nyt Git -lager, der er tilgængeligt over Apache HTTP -serveren, skal du køre et par kommandoer. Du vil ikke gøre det samme igen og igen bare for at oprette et nyt Git -arkiv. Så jeg besluttede at skrive et shell -script til dette formål.
Opret først et nyt shell -script /usr/local/bin/git-create-repo.sh med følgende kommando:
$sudo nano /usr/lokal/er/git-create-repo.shIndtast nu følgende kodelinjer i shell -scriptet.
#!/bin/bashGIT_DIR='/var/www/git'
REPO_NAME=$ 1
mkdir -s '$ {GIT_DIR}/$ {REPO_NAME}.gå'
CD '$ {GIT_DIR}/$ {REPO_NAME}.gå'
git init --lige &> /dev/nul
røre vedgit-daemon-export-ok
cpkroge/efter opdatering. prøvekroge/efter opdatering
git -konfigurationhttp.receivepacksand
git update-server-info
chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.gå'
smed ud 'Git -depot'$ {REPO_NAME}'oprettet i$ {GIT_DIR}/$ {REPO_NAME}.gå'
Når du har indtastet disse linjer, skal shell -scriptet se ud som følger. Gem nu filen ved at trykke på + x efterfulgt af OG og .
Tilføj nu eksekver tilladelse til shell scriptet med følgende kommando:
$sudo chmod+ x/usr/lokal/er/git-create-repo.shOpret nu et nyt Git -arkiv prøve i Git -projektroden /var/www/git bruger git-create-repo.sh shell script som følger:
$sudogit-create-repo.shprøveGit -depotet prøve skulle oprettes.
For at få adgang til Git -depotet har du brug for Git HTTP -serverens IP -adresse.
$iptilSom du kan se, er IP -adressen i mit tilfælde 192.168.21.208 . Det vil være anderledes for dig. Udskift den med din fra nu af.
Nu kan du klone prøve Git repository som følger:
$git klonhttp://192.168.21.208/gå/test.goGit -depotet prøve skal klones.
Lad os nu tilføje en ny forpligtelse til prøve Git -depot.
$CDprøve/$smed ud 'Hej Verden' >Hej
$git tilføj.
$git commit -m 'første forpligtelse'
Upload nu ændringerne til prøve Git repository på serveren som følger:
$git skuboprindelseSom du kan se, uploades ændringerne fint.
Konfiguration af brugergodkendelse:
I dette afsnit vil jeg vise dig, hvordan du konfigurerer brugergodkendelse på Git -arkiverne på serveren.
Rediger først git.conf webstedets konfigurationsfil som følger:
$sudo nano /etc/apache2/tilgængelige websteder/git.confTilføj nu følgende afsnit i konfigurationsfilen.
<LocationMatch/gå/.*.gå>AuthType Basic
AuthName'Git -verifikation'
AuthUserFile/etc/apache2/git.passwd
Kræv en gyldig bruger
LocationMatch>
Her, /etc/apache2/git.passwd er brugerdatabasefilen.
Den endelige konfigurationsfil skal se ud som følger. Gem nu filen ved at trykke på + x efterfulgt af OG og .
Opret nu en ny brugerdatabasefil /etc/apache2/git.passwd og tilføj en ny bruger (lad os sige shovon ) til databasefilen som følger:
$sudohtpasswd-c /etc/apache2/git.passwd shovonIndtast nu en ny adgangskode til den nye bruger, og tryk på .
Indtast den samme adgangskode igen, og tryk på .
Bruger-kodeordsparet skal føjes til databasen.
Genstart nu Apache HTTP -server med følgende kommando:
$sudosystemctl genstart apache2Nu, hvis du prøver at klone prøve repository igen, bliver du bedt om at godkende, som du kan se på skærmbilledet herunder.
Når du har godkendt ved hjælp af brugernavn og adgangskode, har du adgang til Git -arkivet.
Selv når du prøver at skubbe eller trække fra Git -depotet, bliver du også bedt om brugernavn og adgangskode.
Når du har godkendt, virker push/pull.
Du kan også indstille forskellige brugerdatabaser til forskellige Git -lagre. Dette kan være nyttigt til projekter, hvor mange mennesker arbejder sammen på det samme Git -lager.
For at indstille Git-opbevaringsmæssig godkendelse skal du først redigere git.conf webstedets konfigurationsfil som følger:
$sudo nano /etc/apache2/tilgængelige websteder/git.confTilføj nu følgende linjer i konfigurationsfilen.
<Beliggenhed/gå/test.go>AuthType Basic
AuthName'Git -verifikation'
AuthUserFile/etc/apache2/git.test.passwd
Kræv en gyldig bruger
Beliggenhed>
<Beliggenhed/gå/test2.git>
AuthType Basic
AuthName'Git -verifikation'
AuthUserFile/etc/apache2/git.test2.passwd
Kræv en gyldig bruger
Beliggenhed>
For hvert Git -lager prøve og test2 , til afsnit er defineret. Der bruges en anden brugerdatabasefil til hvert Git -arkiv.
Den endelige konfigurationsfil skal se ud som følger. Gem nu konfigurationsfilen ved at trykke på + x efterfulgt af OG og .
Nu kan du oprette de nødvendige brugerdatabaser som følger:
$sudohtpasswd-c /etc/apache2/git.test.passwd BRUGERNAVN$sudohtpasswd-c /etc/apache2/git.test2.passwd BRUGERNAVN
Når du er færdig, skal du genstarte Apache HTTP -server med følgende kommando:
$sudosystemctl genstart apache2Nu skal hvert Git -arkiv have sit eget sæt brugere, der kan få adgang til det.
Så sådan konfigurerer du Git Server med Apache HTTP Server på Ubuntu. Tak fordi du læste denne artikel.