Questa procedura illustra come installare e configurare un server di repository accessibile tramite SVN (subversion) WebDAV utilizzando Apache e un VPS CentOS. Cos'è SVN? È un sistema di controllo delle versioni centralizzato open source, in grado di tracciare e archiviare la cronologia di file e directory nei suoi repository con la possibilità di esaminare la cronologia di come sono cambiati i dati e, se necessario, di recuperare alcune versioni precedenti dei dati.
Per questo tutorial utilizziamo un VPS basato su CentOS 6, ma l'installazione e la configurazione di un server di repository SVN accessibile tramite HTTP utilizzando il protocollo WebDAV è quasi la stessa su qualsiasi altro VPS basato su Linux.
1. Supponendo di disporre dei privilegi di "root", eseguire il comando seguente per aggiornare completamente il sistema e installare i pacchetti necessari.
# yum -y update && yum -y install mod_dav_svn subversion
Successivamente, creeremo e configureremo gli utenti e i repository di subversion.
# htpasswd -cm /etc/svn_htpasswd user1
creerà l'utente 'user1' e creerà il '/etc/svn_htpasswd' file che conterrà i nomi utente svn insieme alle loro password crittografate.
(per creare utenti svn aggiuntivi devi omettere l'opzione '-c' di htpasswd, ad esempio:
# htpasswd -m /etc/svn_htpasswd user2
# mkdir /var/www/repos # svnadmin create /var/www/repos/test_repo1 # svnadmin create /var/www/repos/test_repo2 # chown -R apache: /var/www/repos/
Per avere i repository accessibili tramite HTTP, dobbiamo configurare il file di configurazione di subversion apache.
# cat /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/repos AuthType Basic AuthName "Subversion repositories" AuthUserFile /etc/svn_htpasswd Require valid-user AuthzSVNAccessFile /etc/svn_acl </Location>
quindi riavvia il server web apache, in modo che le modifiche possano avere effetto. Emetti il seguente comando per ricaricare Apache:
# service httpd restart
( se ottieni qualcosa del genere: 'mod_dav_svn.so:undefined symbol:dav_register_provider' , quindi molto probabilmente devi attivare il 'mod_dav.so ' e 'mod_dav_fs.so ' moduli apache nel suo file di configurazione principale '/etc/httpd/conf/httpd.conf' )
# cat /var/www/repos/test_repo1/conf/svnserve.conf [general] [sasl] ## Disable anonymous access ## anon-access = none ## Enable access control ## authz-db = authz
# cat /etc/svn_acl [groups] group1 = user1 group2 = user2 group3 = user3, user4 [/] * = r @group1 = rw user1 = rw [test_repo1:/] @group1 = rw @group2 = [test_repo1:/static] @group2 = r [test_repo2:/public] @group3 = rw user2= r
Crea directory "modello" con il seguente comando:
# mkdir -p /tmp/test_repo1/{code,static,documentation}
una volta create puoi importare le directory nel repository 'test_repo1' eseguendo il seguente comando:
# svn import -m 'Testing ...' /tmp/test_repo1/ http://yourdomain.tld/repos/test_repo1/
Ora puoi accedere al repository SVN appena creato tramite il protocollo HTTP su 'http://yourdomain.tld/repos/test_repo1/' . Verrà visualizzata una finestra di autorizzazione in cui è necessario accedere con l'utente svn appropriato.
PS. Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.