Como configurar Subversion (SVN) en Apache 2 sobre Ubuntu
Este post esta basado en este Subversion over Apache 2 on Ubuntu, en inglés.
Subversion o (SVN) es una poderosa herramienta de control de versiones (para desarrollo, diseño e incluso documentos) que puede instalarse sobre el servidor Apache 2 y esto en Ubuntu se logra con unos sencillos pasos.
Primero, el trasfondo.
Asumiremos que se tiene instalado Apache 2 en el sistema Ubuntu entonces procederemos paso a paso a ir instalando y configurando lo demás.
Instalación de Subversion y mod para Apache
Esto lo logramos con la línea:
sudo apt-get install subversion libapache2-svn
El módulo emplea WebDAV para trasmitir los archivos a Subversion, esto nos facilitará mucho las cosas ya que emplearemos el mismo puerto 80 empleado por Apache 2.
Ahora procedemos a habilitar el módulo (aunque esto teóricamente se hace por defecto al instalarlo).
sudo a2enmod dav_svn
Creación de un repositotio SVN
Crearemos el repositorio y su estructura.
sudo mkdir /ruta/local/al/repositorio
sudo svnadmin create /ruta/local/al/repositorio
Haremos que Apache 2 sea el propietario (owner) del repositorio recién creado
sudo chown -R www-data /home/svn
Y crearemos un archivo de contraseñas que emplearemos para restringir el acceso al repositorio
sudo htpasswd -cm /ruta/al/archivo_de_contraseñas.passwd nombre_del_usuario
La consola preguntará por la contraseña que desearemos asignar al usuario.
Si ya disponemos de un archivo existente y solo queremos agregar un nuevo usuario entonces el comando que necesitaremos es:
sudo htpasswd -m /ruta/al/archivo_de_contraseñas.passwd nombre_del_nuevo_usuario
Ahora, editaremos el archivo /etc/apache2/mods-enabled/dav_svn.conf
En la consola lo consegumos mediante
sudo nano /etc/apache2/mods-enabled/dav_svn.conf
Y en el entorno gráfico mediante:
sudo -b gedit /etc/apache2/mods-enabled/dav_svn.conf
Tendremos que añadir las siguientes líneas al archivo por cada repositorio que deseemos instalar:
<Location /ruta/en/url/al/repositorio>
DAV svn
SVNPath /ruta/local/al/repositorio
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /ruta/al/archivo_de_contraseñas.passwd
Require valid-user
</Location>
Naturalmente debemos remplazar /ruta/en/url/al/repositorio, /ruta/local/al/repositorio y /ruta/al/archivo_de_contraseñas.passwd por las ubicaciones y archivos reales que vamos a emplear.
Y por último debemos reiniciar el servidor Apache 2
sudo /etc/init.d/apache2 restart
Hemos terminado
Podemos comprobar que el repositorio está funcionando en nuestro navegador web:
http://nuestro.servidor/ruta/en/url/al/repositorio
Y el navegador nos preguntará por nuestras credenciales de acceso (el nombre que dimos anteriormente y la contraseña que le asignamos).

Últimos Comentarios