Configura Git Server con HTTP su Ubuntu

Configure Git Server With Http Ubuntu



Se vuoi configurare un server HTTP Git per lavorare con i repository Git in privato, allora questo articolo fa per te. In questo articolo, ti mostrerò come configurare un server HTTP Git Smart su Ubuntu con il server HTTP Apache. Quindi iniziamo.

I pacchetti Git e Apache sono disponibili nel repository ufficiale dei pacchetti di Ubuntu. Quindi, puoi installarlo facilmente con il gestore di pacchetti APT.







Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:



$sudoapt aggiornamento



La cache del repository del pacchetto APT dovrebbe essere aggiornata.





Ora installa Git e Apache con il seguente comando:



$sudoadattoinstallare andareapache2 apache2-utils

Ora premi E e poi premere per confermare l'installazione.

Git e Apache dovrebbero essere installati.

Configurazione del server HTTP Apache per Git:

Ora, abilita Apache mod_env , mod_cgi , mod_alias e mod_rewrite moduli con il seguente comando:

$sudoa2enmodenvcgialiasriscrivere

I moduli Apache richiesti dovrebbero essere abilitati.

Ora crea una nuova directory /var/www/git per mantenere tutti i repository Git con il seguente comando:

$sudo mkdir /dove/www/andare

Ora, crea una nuova configurazione del sito Apache /etc/apache2/sites-available/git.conf per Git con il seguente comando:

$sudo nano /eccetera/apache2/siti-disponibili/git.conf

Ora, digita le seguenti righe nel file di configurazione:

<VirtualHost*:80>
Webmaster di ServerAdmin@localhost

SetEnv GIT_PROJECT_ROOT<forte> /dove/www/andareforte>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/andare/ /usr/libi/git-core/git-http-backend/

Alias/andare /dove/www/andare

<Directory/usr/libi/git-core>
Opzioni +ExecCGI-MultiViews+SymLinksIfOwnerMatch
ConsentiSovrascrivi Nessuno
Richiedi tutto concesso
Directory>

DocumentRoot/dove/www/html

<Directory/dove/www>
Opzioni Indici FollowSymLinks MultiViews
ConsentiSovrascrivi Nessuno
Richiedi tutto concesso
Directory>


ErrorLog$ {APACHE_LOG_DIR}/errore.log
Avvertimento livello log
Log personalizzato$ {APACHE_LOG_DIR}/access.log combinato
VirtualHost>

Il file di configurazione finale ha il seguente aspetto. Ora salva il file di configurazione premendo + X seguito da E e .

Ora disabilita la configurazione predefinita del sito Apache con il seguente comando:

$sudoa2dissite 000-default.conf

La configurazione del sito predefinita dovrebbe essere disabilitata.

Ora, abilita la configurazione del sito Git con il seguente comando:

$sudoa2ensite git.conf

La configurazione del sito Git dovrebbe essere abilitata.

Ora riavvia il server HTTP Apache con il seguente comando:

$sudosystemctl riavvia apache2

Per avviare un nuovo repository Git accessibile tramite il server HTTP Apache, dovrai eseguire alcuni comandi. Non vuoi fare la stessa cosa più e più volte solo per creare un nuovo repository Git. Quindi, ho deciso di scrivere uno script di shell per questo scopo.

Per prima cosa, crea un nuovo script di shell /usr/local/bin/git-create-repo.sh con il seguente comando:

$sudo nano /usr/Locale/sono/git-create-repo.sh

Ora, digita le seguenti righe di codici nello script della shell.

#!/bin/bash

GIT_DIR='/var/www/git'
REPO_NAME=$ 1

mkdir -P '${GIT_DIR}/${REPO_NAME}.andare'
cd '${GIT_DIR}/${REPO_NAME}.andare'

git init --Appena &> /sviluppo/nullo
toccogit-daemon-export-ok
cpganci/post-aggiornamento.ganci di esempio/post-aggiornamento
git confighttp.receivepackvero
git update-server-info
chown -Rfwww-dati: www-dati'${GIT_DIR}/${REPO_NAME}.andare'
buttato fuori 'Archivio Git'${REPO_NAME}' creato in${GIT_DIR}/${REPO_NAME}.andare'

Una volta digitate queste righe, lo script della shell dovrebbe apparire come segue. Ora salva il file premendo + X seguito da E e .

Ora aggiungi i permessi di esecuzione allo script della shell con il seguente comando:

$sudo chmod+ x/usr/Locale/sono/git-create-repo.sh

Ora crea un nuovo repository Git test nella radice del progetto Git /var/www/git usando il git-create-repo.sh script di shell come segue:

$sudogit-create-repo.shtest

Il repository Git test dovrebbe essere creato.

Per accedere al repository Git, è necessario l'indirizzo IP del server Git HTTP.

$ipa

Come puoi vedere, l'indirizzo IP nel mio caso è 192.168.21.208 . Sarà diverso per te. Sostituiscilo con il tuo d'ora in poi.

Ora puoi clonare il test repository Git come segue:

$git clonehttp://192.168.21.208/andare/test.go

Il repository Git test dovrebbe essere clonato.

Ora aggiungiamo un nuovo commit al test Archivio Git.

$cdtest/
$buttato fuori 'Ciao mondo' >Ciao
$git add.
$git commit -m 'commessa iniziale'

Ora carica le modifiche su test repository Git sul server come segue:

$git pushorigine

Come puoi vedere, le modifiche vengono caricate correttamente.

Configurazione dell'autenticazione utente:

In questa sezione, ti mostrerò come configurare l'autenticazione dell'utente sui repository Git nel server.

Per prima cosa, modifica il git.conf file di configurazione del sito come segue:

$sudo nano /eccetera/apache2/siti-disponibili/git.conf

Ora aggiungi la seguente sezione nel file di configurazione.

<LocationMatch/andare/.*.andare>
AuthType di base
NomeAut'Verifica Git'
AuthUserFile/eccetera/apache2/git.passwd
Richiedi valido-utente
LocationMatch>

Qui, /etc/apache2/git.passwd è il file del database dell'utente.

Il file di configurazione finale dovrebbe avere il seguente aspetto. Ora salva il file premendo + X seguito da E e .

Ora, crea un nuovo file di database utente /etc/apache2/git.passwd e aggiungi un nuovo utente (diciamo shovon ) nel file di database come segue:

$sudohtpasswd-C /eccetera/apache2/git.passwd shovon

Ora digita una nuova password per il nuovo utente e premi .

Ridigita la stessa password e premi .

La coppia utente-password dovrebbe essere aggiunta al database.

Ora riavvia il server HTTP Apache con il seguente comando:

$sudosystemctl riavvia apache2

Ora, se provi a clonare il test repository, ti verrà chiesto di autenticarti come puoi vedere nello screenshot qui sotto.

Una volta autenticato utilizzando il nome utente e la password, sarai in grado di accedere al repository Git.

Anche quando provi a eseguire il push o il pull dal repository Git, ti verranno richiesti anche il nome utente e la password.

Una volta autenticato, push/pull funzionerà.

Puoi anche impostare database utente diversi per repository Git diversi. Questo potrebbe essere utile per progetti in cui molte persone lavorano insieme sullo stesso repository Git.

Per impostare l'autenticazione del repository Git, prima, modifica il git.conf file di configurazione del sito come segue:

$sudo nano /eccetera/apache2/siti-disponibili/git.conf

Ora aggiungi le seguenti righe nel file di configurazione.

<Posizione/andare/test.go>
AuthType di base
NomeAut'Verifica Git'
AuthUserFile/eccetera/apache2/git.test.passwd
Richiedi valido-utente
Posizione>

<Posizione/andare/test2.git>
AuthType di base
NomeAut'Verifica Git'
AuthUserFile/eccetera/apache2/git.test2.passwd
Richiedi valido-utente
Posizione>

Per ogni repository Git test e prova2 , a la sezione è definita. Per ogni repository Git viene utilizzato un file di database utente diverso.

Il file di configurazione finale dovrebbe avere il seguente aspetto. Ora salva il file di configurazione premendo + X seguito da E e .

Ora puoi creare i database utente richiesti come segue:

$sudohtpasswd-C /eccetera/apache2/git.test.passwd NOMEUTENTE
$sudohtpasswd-C /eccetera/apache2/git.test2.passwd NOMEUTENTE

Al termine, riavvia il server HTTP Apache con il seguente comando:

$sudosystemctl riavvia apache2

Ora, ogni repository Git dovrebbe avere il proprio set di utenti che possono accedervi.

Quindi, è così che configuri Git Server con Apache HTTP Server su Ubuntu. Grazie per aver letto questo articolo.