E’ innegabile l’importanza di utilizzare SVN per sviluppare progetti, oltre che garantire interoperabilità tra più persone ci consente di avere degli screenshot dei nostri progetti e poter tornare indietro nel tempo per recuperare porzioni di codice magari eliminato. Armiamoci quindi di pochi minuti per tirare su il nostro server SVN su Debian Lenny!
Prerequisiti
- Si presuppone che si conosca già cosa sia svn, nel caso contrario una guida introduttiva valida potrebbe essere questa.
- Si presuppone inoltre che nella nostra amata Lenny ci sia già un server Apache attivo e funzionante.
- Si presuppone infine che siamo loggati sul server come root.
Installiamo subversion ed il relativo modulo di Apache
apt-get install subversion libapache2-svn
Configuriamo Subversion
Creiamo il nostro primo repository
mkdir /var/svn
chown -R www-data:www-data /var/svn
La directory su cui creiamo i nostri repository deve essere leggibile e scrivibile Apache dato che usiamo il modulo libapache2-svn.
Installiamo ed attiviamo SSL
apt-get install openssl ssl-cert
a2enmod ssl
Creiamo un nuovo file di configurazione SSL (potete scegliere il nome del file che preferite, a patto che vi ricordiate di adattare le prossime istruzioni…)
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl.nuovo.sito
Editiamo il file appena creato
sudo vi /etc/apache2/sites-available/ssl.nuovo.sito
e sostituiamo
<VirtualHost *:80>
con
<VirtualHost *:443>
dopodichè, prima della chiusura del VirtualHost identificata dalla stringa aggiungiamo
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ssl.nuovo.sito.pem
Avremmo potuto prendere a modello il file “default-ssl” anzichè “default”, che dovrebbe essere già preimpostato ed ottimizzato per SSL, ma personalmente ho seguito questa strada e non so se usare il “default-ssl” richiederebbe ulteriori modifiche.
Creiamo il certificato SSL
mkdir /etc/apache2/ssl
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/ssl.nuovo.sito.pem
Ed abilitiamo il nuovo sito
a2ensite ssl.nuovo.sito
/etc/init.d/apache2 reload
Verifichiamo che quanto abbiamo fatto sia funzionante visitando sul nostro browser l’indirizzo:
https://indirizzo_ip/
ed accettiamo di importare il nostro certificato anche se non valido in quanto non emesso da società abilitate come Verisign e simili
Configuriamo il modulo DAV_SVN
Editiamo il relativo file di configurazione
vi /etc/apache2/mods-available/dav_svn.conf
Decommentiamo le righe di codice che ci interessano ed aggiungiamo una riga di contenuto ed il nostro file (la parte non commentata) dovrebbe risultare così:
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL # questa linea deve essere aggiunta per abilitare SSL
Abilitiamo il modulo dav_svn e riavviamo Apache
a2enmod dav_svn
/etc/init.d/apache2 restart
Ora creiamo un utente che debba aver accesso al repository
htpasswd -c /etc/apache2/dav_svn.passwd utente1
da notare che l’opzione “-c” comporta che il file venga creato, quindi è necessario usarla solo per la prima volta, dopodichè per le volte successive è sufficente ometterla ed usare la seguente sintassi:
htpasswd /etc/apache2/dav_svn.passwd utente2
Creiamo il primo Repository e verifichiamo che funzioni correttamente
svnadmin create /var/svn/test
chown -R www-data:www-data /var/svn/test
svn co https://127.0.0.1/svn/test
il risultato dovrebbe essere
Checked out revision 0
se non lo fosse o avete tralasciato uno o più istruzioni o il sottoscritto ha omesso un qualche passaggio, nel secondo caso siete sempre liberi di lasciare commenti o contattarmi.
Benvenuti nel Vostro primo Repository
L’installazione è completata, date il via ai lavori collaborando con i vostri colleghi e non perdendo più una riga di codice!