Questo articolo tratta l'installazione di subversion con il modulo apache in modo che possa essere facilmente accessibile da altri sistemi su una rete pubblica. Se vuoi un server svn più sicuro, puoi usare svnserve + ssh, che non è trattato in questo articolo.
Per installare subversion, apri un terminale ed esegui il seguente comando:
sudo apt-get install subversion libapache2-svn
Creeremo il repository subversion in / svn, anche se dovresti scegliere una posizione che abbia una buona quantità di spazio.
sudo svnadmin create /svn
Successivamente dovremo modificare il file di configurazione per il modulo webdav di subversion. Puoi usare un editor diverso se lo desideri.
sudo gedit /etc/apache2/mods-enabled/dav_svn.conf
L'elemento Location nel file di configurazione detta la directory root da cui sarà possibile accedere a subversible, ad esempio: https://www.server.com/svn
La linea DAV deve essere decommentata per abilitare il modulo dav
# Uncomment this to enable the repository, DAV svn
La riga SVNPath deve essere impostata nello stesso punto in cui è stato creato il repository con il comando svnadmin.
# Set this to the path to your repository SVNPath /svn
La prossima sezione ti permetterà di attivare l'autenticazione. Questa è solo un'autenticazione di base, quindi non considerarla estremamente sicura. Il file della password verrà posizionato dove l'impostazione AuthUserFile lo imposta, probabilmente meglio lasciarlo al valore predefinito.
# Uncomment the following 3 lines to enable Basic Authentication AuthType Basic AuthName “Subversion Repository” AuthUserFile /etc/apache2/dav_svn.passwd
Per creare un utente sul repository, utilizzare il seguente comando:
sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd
Nota che dovresti usare l'opzione -c solo la PRIMA volta che crei un utente. Successivamente, si desidera utilizzare solo l'opzione -m, che specifica la crittografia MD5 della password, ma non ricrea il file.
Esempio:
sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd geek New password: Re-type new password: Adding password for user geek
Riavvia apache eseguendo il seguente comando:
sudo /etc/init.d/apache2 restart
Ora, se vai nel tuo browser a https://www.server.com/svn, dovresti vedere che il repository è abilitato per l'accesso in lettura anonimo, ma l'accesso al commit richiede un nome utente.
Require valid-user
Ora, se aggiorni il tuo browser, ti verranno chieste le tue credenziali: