Este instructivo analiza cómo instalar y configurar un servidor de repositorio SVN (subversión) WebDAV accesible mediante Apache y un CentOS VPS. ¿Qué es SVN? Es un sistema de control de versiones centralizado de código abierto, que puede rastrear y almacenar el historial de archivos y directorios en sus repositorios con la capacidad de examinar el historial de cómo cambiaron los datos y, si es necesario, recuperar algunas versiones anteriores de los datos.
Para este tutorial estamos usando un VPS basado en CentOS 6, pero la instalación y configuración de un servidor de repositorio SVN accesible a través de HTTP usando el protocolo WebDAV es casi la misma en cualquier otro VPS basado en Linux.
1. Suponiendo que tiene privilegios de "raíz", ejecute el siguiente comando para actualizar completamente su sistema e instalar los paquetes necesarios.
# yum -y update && yum -y install mod_dav_svn subversion
A continuación, vamos a crear y configurar los usuarios y repositorios de Subversion.
# htpasswd -cm /etc/svn_htpasswd user1
creará el usuario ‘usuario1’ y creará el ‘/etc/svn_htpasswd’ archivo que contendrá los nombres de usuario svn junto con sus contraseñas cifradas.
(para crear usuarios svn adicionales, debe omitir el interruptor '-c' de htpasswd, por ejemplo:
# 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/
Para tener acceso a los repositorios a través de HTTP, necesitamos configurar el archivo de configuración de 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>
luego reinicie el servidor web apache, para que los cambios surtan efecto. Ejecute el siguiente comando para recargar apache:
# service httpd restart
( si obtiene algo como esto: ‘mod_dav_svn.so:símbolo indefinido:dav_register_provider’ , lo más probable es que necesite activar el 'mod_dav.so ‘ y ‘mod_dav_fs.so ‘módulos de apache en su archivo de configuración central ‘/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
Cree directorios de 'plantilla' con el siguiente comando:
# mkdir -p /tmp/test_repo1/{code,static,documentation}
una vez creados, puede importar los directorios al repositorio 'test_repo1' ejecutando el siguiente comando:
# svn import -m 'Testing ...' /tmp/test_repo1/ http://yourdomain.tld/repos/test_repo1/
Ahora puede acceder al repositorio SVN recién creado a través del protocolo HTTP en ‘http://yourdomain.tld/repos/test_repo1/’ . Aparecerá una ventana de autorización en la que deberá iniciar sesión con el usuario svn adecuado.
PD. Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.