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 sì e poi premere
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
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/bashGIT_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
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 aCome 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 origineCome 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
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.confOra 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
Il file di configurazione finale dovrebbe apparire come segue. Ora salva il file di configurazione premendo
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.