bibigeek.com  Tu blog de Programación Geek: Java, php, J2EE... y mucho más

Ya está… CONSEGUIDO!

Como habéis podido comprobar en los anteriores posts (para ser más concretos los dos últimos) he cambiado de Servidor y en estos momentos tengo instalada una distribución Linux Debian Lenny.
Como podréis imaginar a un buen programador no le puede faltar un Repositorio de Versiones, en este caso he instalado nuevamente el Subversion siguiendo los pasos de un Post que ya escribí en su tiempo, pero sólo tenéis que añadir una modificación en el siguiente comando:


sudo svnadmin create /home/<nombreDirectorio>

Hay que añadir la opción: –fs-type fsfs. Por lo tanto, el comando quedaría de la siguiente forma:


sudo svnadmin create --fs-type fsfs /home/<nombreRepositorio>

Sabiendo esto, ya podéis seguir las instrucciones de este Post:

Instalar un Repositorio Subversion en Ubuntu con WebDav

Ya sé que el Post para instalar un Respositorio Subversion era para una distribución Ubuntu, pero estos mismos pasos me han servido para instalar satisfactoriamente el Subversion en mi nueva distribución Debian. Lo que voy a explicar ahora de nuevo es como activar el módulo websvn que contiene una interfaz más amigable, funciones de comparación, histórico,… como de un cliente subversion se tratase pero disponible en formato Web (programada con php).

Instalar WebSVN en Linux Debian Lenny, Ubuntu…

Simplemente hay que comprobar si tenemos disponibles en nuestros repositorios linux el paquete websvn. Lo podremos comprobar ejecutando el siguiente comando en una terminal:


sudo aptitude search websvn
p   websvn                             - interface for subversion repositories written in PHP

Si véis que hay una “i” en vez de una “p” justo al incio de la línea querrá decir que está instalado, en caso contrario no. Para instalar el WebSVN también será necesaria la instalación de otro paquete adicional llamado: enscript. Por lo tanto vayamos a instalar los dos paquetes poniendo los siguientes comandos:


sudo aptitude install enscript
sudo aptitude install websvn

Ahora viene cuando deberemos configurar el websvn para que funcione con nuestro respositorio.

KIT-KAT: Tengo que mencionar que dentro de un mismo directorio podremos tener varios Repositorios Instalados, por ejemplo, un repositorio para proyectos personales y otro para proyectos de invitados, FIN KIT-KAT

Ahora veamos las imágenes que nos ayudará a entender como configurar el WebSVN:

Imagen 1. Especificamos que deseamos configurar el webSVN

Pantallazo 1. Configuracion inicial

Imagen 2. Tenemos que indicar los módulos que deseamos configurar para el apache, yo he seleccionado todos :P .

Pantallazo con las confguraciones posibles de apache

Imagen 3. Indicar la carpeta donde están situados los repositorios subversion, en este caso lo instalé en /var/SVN

Pantallazo 3 con la información del Repositorio Padre

Imagen 4. Ahora seleccionamos el nombre del repositorio que se tiene que mostrar, en este caso puse el nombre de subversion. Por lo tanto el directorio queda: /var/SVN/subversion.

Pantallazo 4 selecciona repositorio

Imagen 5. Finalmente el sistema de configuración del websvn nos avisa de los permisos que hay que asignarles al Repositorio y el tipo –fs-type fsfs para que todo funcione correctamente.

Pantallazo 5. Aviso de permisos

Si tenemos que añadir nuevos repositorios o configurar nuevamente el websvn sólo tendremos que ejecutar el siguiente comando en la terminal:


sudo dpkg-reconfigure websvn

Información sobre el WebSVN

Los datos más relevantes que se tienen que tener en cuenta sobre el websvn son:

- Esta programado con PHP4, por lo tanto, nuestro servidor necesitará soporte para php :P
- Podemos encontrar los ficheros de configuración en el directorio: /etc/websvn. Veamos cuales hay:


server:/etc/websvn# ls -l
total 28
-rw-r--r-- 1 root root       366 nov 21 22:36 apache.conf
-rw-r--r-- 1 root root     14834 feb 15  2009 config.php
-rw-r----- 1 root www-data   363 nov 21 23:49 svn_deb_conf.inc
-rw-r--r-- 1 root root      4003 feb 15  2009 wsvn.php

- El fichero apache.conf” está referenciado en el fichero de configuración del Servidor Apache, en mi caso, con el nombre apache2.conf”. Realmente no es que haya modificado el fichero, sino que al iniciar la configuración del WEBSVN ha creado un enlace símbolico en la carpeta conf.d del servidor Apache (por ejemplo: /etc/apache2/conf.d), en el que apunta al fichero situado en “/etc/websvn/apache.conf”.

- Si editamos el fichero mencionado (apache.conf) en modo lectura o escritura, podremos ver que hay Alias de Apache que hace referencia al directorio siguiente: /usr/share/websvn. Ahí podemos encontrar los siguientes ficheros Web del WebSVN:


/usr/share/websvn# ls -l
total 104
-rw-r--r-- 1 root root  6560 ago 13  2007 blame.php
lrwxrwxrwx 1 root root    17 nov 20 23:50 cache -> /var/cache/websvn
-rw-r--r-- 1 root root 11860 ago 13  2007 comp.php
-rw-r--r-- 1 root root 12667 ago 13  2007 diff.php
-rw-r--r-- 1 root root  3001 may  4  2007 dl.php
-rw-r--r-- 1 root root  4626 ago 13  2007 filedetails.php
-rw-r--r-- 1 root root  1995 may  2  2007 form.php
drwxr-xr-x 2 root root  4096 nov 20 23:50 include
-rw-r--r-- 1 root root  3632 jun 11  2007 index.php
drwxr-xr-x 2 root root  4096 nov 20 23:50 languages
-rw-r--r-- 1 root root 12810 ago 13  2007 listing.php
-rw-r--r-- 1 root root 12179 ago 13  2007 log.php
-rw-r--r-- 1 root root  4970 feb 15  2009 rss.php
lrwxrwxrwx 1 root root    21 nov 20 23:50 temp -> /var/cache/websvn/tmp
drwxr-xr-x 4 root root  4096 nov 20 23:50 templates
lrwxrwxrwx 1 root root    20 nov 20 23:50 wsvn.php -> /etc/websvn/wsvn.php

Aspecto – pantallazos del WebSVN en funcionamiento

Para que podáis comprobar si realmente vale la pena el esfuerzo de instalar el WebSVN en vuestro servidor (local o no), os dejo unos pantallazos de un subversion que lo monté en mi servidor local Debian.
Saludos a tod@s

Inicio WebSVN

Repositorio Invitados

Selección Proyecto

Ver Código Fuente Completo

Comparacion Versiones

2 Comentarios

  1. maritmos on Marzo 9, 2010 5:04 pm

    Excelente post! gracias por tu aporte.
    Acabo de montar en mi servidor debian la aplicación webSvn pero veo que la configuración no exige autenticación a los usuario a la hora de ver las páginas web.

    ¿Cómo puedo incluir un esquema de autenticación a mi repositorio para que no sea tan facilmente visible desde la web?

  2. bibigeek on Marzo 9, 2010 6:37 pm

    Te digo la verdad???
    Lo intenté, porque si accedes al repositorio mediante WebDAV si que hay autenticación, gracias a, que en la configuración indicamos:

    AuthUserFile /etc/apache2/dav_svn.passwd
    Require valid-user

    Pero con el websvn, aunque tenga configurado así el WebDAV, no me pide authenticación. Lo miraré más detenidamente así nos servirá a ambos.

Escribe un Comentario