Idiota

Configura Git Server con HTTP su Ubuntu

Configura Git Server con HTTP su 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.

Installazione di Git e Apache HTTP Server:

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:

$ sudo apt update

La cache del repository dei pacchetti APT dovrebbe essere aggiornata.

Ora installa Git e Apache con il seguente comando:

$ sudo apt install git apache2 apache2-utils

Ora premi 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:

$ sudo a2enmod env cgi alias rewrite

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 /var/www/git

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

$ sudo nano /etc/apache2/sites-available/git.conf

Ora, digita le seguenti righe nel file di configurazione:


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
 

Opzioni +ExecCGI -MultiViews +SymLinksIfOwnerMatch
ConsentiSovrascrivi Nessuno
Richiedi tutto concesso

 
DocumentRoot /var/www/html
 

Opzioni Indici FollowSymLinks MultiViews
ConsentiSovrascrivi Nessuno
Richiedi tutto concesso

 
 
ErrorLog $APACHE_LOG_DIR/error.log
Avvertimento livello log
CustomLog $APACHE_LOG_DIR/accesso.log combinato

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

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

$ sudo a2dissite 000-default.conf

La configurazione del sito predefinita dovrebbe essere disabilitata.

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

$ sudo a2ensite git.conf

La configurazione del sito Git dovrebbe essere abilitata.

Ora riavvia il server HTTP Apache con il seguente comando:

$ sudo systemctl 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/local/bin/git-create-repo.sh

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

#!/bin/bash
 
GIT_DIR="/var/www/git"
REPO_NAME=$1
 
mkdir -p "$GIT_DIR/$REPO_NAME.idiota"
cd "$GIT_DIR/$REPO_NAME.idiota"
 
git init --bare &> /dev/null
tocca git-daemon-export-ok
cp hook/post-aggiornamento.esempi di hook/post-aggiornamento
git config http.ricezionepacchetto vero
git update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.idiota"
echo "Repository Git '$REPO_NAME' creato in $GIT_DIR/$REPO_NAME.idiota"

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

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

$ sudo chmod +x /usr/local/bin/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:

$ sudo git-create-repo.sh test

Il repository Git test dovrebbe essere creato.

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

$ ip a

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 clone http://192.168.21.208/git/test.idiota

Il repository Git test dovrebbe essere clonato.

Ora aggiungiamo un nuovo commit al test Archivio Git.

$ cd prova/
$ echo "Ciao Mondo" > ciao
$ git add .
$ git commit -m 'commit iniziale'

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

$ git push origine

Come puoi vedere, le modifiche vengono caricate bene.

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 idiota.conf file di configurazione del sito come segue:

$ sudo nano /etc/apache2/sites-available/git.conf

Ora aggiungi la seguente sezione nel file di configurazione.


AuthType di base
AuthName "Verifica Git"
AuthUserFile /etc/apache2/git.passwd
Richiedi valido-utente

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

Il file di configurazione finale dovrebbe apparire come segue. Ora salva il file premendo + X seguito da 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:

$ sudo htpasswd -c /etc/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:

$ sudo systemctl riavvia apache2

Ora, se provi a clonare il test repository di nuovo, 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 un database utente diverso per diversi repository Git. 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 idiota.conf file di configurazione del sito come segue:

$ sudo nano /etc/apache2/sites-available/git.conf

Ora aggiungi le seguenti righe nel file di configurazione.


AuthType di base
AuthName "Verifica Git"
AuthUserFile /etc/apache2/git.test.passwd
Richiedi valido-utente

 

AuthType di base
AuthName "Verifica Git"
AuthUserFile /etc/apache2/git.prova2.passwd
Richiedi valido-utente

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

Il file di configurazione finale dovrebbe apparire come segue. Ora salva il file di configurazione premendo + X seguito da e .

Ora puoi creare i database utente richiesti come segue:

$ sudo htpasswd -c /etc/apache2/git.test.passwd NOMEUTENTE
$ sudo htpasswd -c /etc/apache2/git.prova2.passwd NOMEUTENTE

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

$ sudo systemctl 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.

Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...
Motori di gioco gratuiti e open source per lo sviluppo di giochi Linux
Questo articolo tratterà un elenco di motori di gioco gratuiti e open source che possono essere utilizzati per lo sviluppo di giochi 2D e 3D su Linux....
Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...