Instalación y configuración de WebSVN en CentOS 6.5

Ya tenemos Subversion en un VPS con CentOS 6 y hemos mudado repositorios de Assembla hacia el servidor privado. Ahora, configuraremos la interfaz gráfica con WebSVN.

Con la ayuda de eHowStuff y Websanova instalaremos y configuraremos WebSVN para leer el historial de cambios de los repositorios de nuestro servidor privado.

Paso 1. Obtener WebSVN

En el mundo feliz, ideal, y sencillo, todo se reduciría a la instalación con el siguiente comando:

sudo yum install websvn

Lamentablemente, no se encuentra en la lista de paquetes en el repositorio predeterminado, de manera que deberá ser manual la descarga. Para obtener el vínculo de descarga de la última versión hay que ir al sitio http://www.websvn.info/download/. Hasta la fecha de esta publicación, la versión más reciente de WebSVN es la versión 2.3.3.

Realizamos una conexión directa con el servidor mediante SSH y descargamos el archivo con el siguiente comando:

wget http://websvn.tigris.org/files/documents/1380/49056/websvn-2.3.3.tar.gz

En caso de que no se encuentre el comando wget, instalarlo:

sudo yum install wget

Paso 2. Descomprimir el archivo en la carpeta de instalación

Dependiendo de dónde haya sido descargado el archivo, o a dónde sea movido, se necesitará usar sudo o no. En este caso, se asume que el archivo ya está en su directorio final, /var/www/html/, por lo que necesitamos permisos de administrador para manipular el archivo.

Para instalar, se descomprime el archivo, se elimina el original, y renombramos el directorio eliminando la versión:

#Descomprimir el archivo.
sudo tar xvfz websvn-2.3.3.tar.gz
#Eliminar el archivo pues ya no es necesario tras la descompresión.
sudo rm websvn-2.3.3.tar.gz
#Eliminar el nombre de la versión del nombre, por puro gusto.
sudo mv websvn-2.3.3 websvn

Paso 3. Configurar el directorio raíz de los repositorios en el servidor

Ahora que ya está instalado WebSVN (sí, la simple descompresión en un directorio que pueda acceder Apache es suficiente), procedemos a configurar la herramienta con el fin de indicarle dónde se encuentran los repositorios que deseamos observar. Para ello, realizamos una copia del archivo de configuración predeterminado:

cd websvn/include
sudo cp distconfig.php config.php

En este nuevo archivo es necesario configurar el directorio padre de todos los repositorios. Los editores nano o vim servirán para la tarea. Se debe reemplazar la siguiente línea:

// $config->parentPath('Path/to/parent (e.g. c:\\svn)');

por:

$config->parentPath('/trayectoria/a/repositorios/svn');

Hasta ahí, ya contamos con WebSVN instalado en un directorio accesible para Apache, con WebSVN apuntando hacia nuestros repositorios. Es hora de dar una URL mediante la cual acceder.

Paso 4. Configuración de Apache para mostrar WebSVN

Aquí configuramos Apache como se establece en Websanova:

#En nuestro caso, WebSVN reside en /var/www/html/websvn
Alias /websvn "/var/www/html/websvn"
<Directory "/var/www/html/websvn">
    Options -Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Se reinicia Apache para visualizar los cambios en la configuración:

sudo service httpd restart

En la figura 1 se muestra la pantalla principal de WebSVN, misma que puede ser accedida desde http://{tudominio.com}/websvn. En la figura se muestran los repositorios presentes en nuestro servidor: Mizuho Sihaya. Pero hay un ligero problema: cualquiera los puede ver.

Figura 1: Pantalla principal de WebSVN.

Figura 1: Pantalla principal de WebSVN.

Paso 5. Control de acceso mediante .htaccess

Para crear un control de acceso se debe crear el archivo .htaccess en la carpeta raíz de la herramienta WebSVN:

sudo nano /var/www/html/websvn/.htaccess

Se añaden las siguientes líneas al archivo:

AuthName "Acceso a WebSVN"
AuthType Basic
AuthUserFile /etc/svn-auth-users
Require valid-user

En este caso, el archivo /etc/svn-auth-users corresponde a la lista de usuarios aceptados, archivo que fue creado en el paso 3 de la entrada Configuración de servidor SVN en CentOS 6.

Esa configuración dará acceso solamente a aquellos usuarios dados de alta en el archivo de contraseñas especificado.

¿Qué sigue?

Ahora ya tenemos repositorios SVN y una forma de visualizar los mensajes de cada revisión. El siguiente paso será integrar algún sistema de tickets, ya sea de código libre o un desarrollo propio de nuestra compañía. Hasta la próxima.



Deja un comentario