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/andareOra, 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.confOra, 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.confLa configurazione del sito predefinita dovrebbe essere disabilitata.
Ora, abilita la configurazione del sito Git con il seguente comando:
$sudoa2ensite git.confLa configurazione del sito Git dovrebbe essere abilitata.
Ora riavvia il server HTTP Apache con il seguente comando:
$sudosystemctl riavvia apache2Per 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.shOra, digita le seguenti righe di codici nello script della shell.
#!/bin/bashGIT_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.shOra 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.shtestIl repository Git test dovrebbe essere creato.
Per accedere al repository Git, è necessario l'indirizzo IP del server Git HTTP.
$ipaCome 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.goIl 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 pushorigineCome 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.confOra 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 shovonOra 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 apache2Ora, 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.confOra 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 apache2Ora, 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.