Apache subversion sobre Windows

Esta es la opcion mala para configurar subversion en un servidor web. Estamos hablando de hacerlo sobre el apache de windows.

Hace tiempo, cuando me puse a montar un subversion primero opté por hacerlo sobre windows, ya que tenía que montar los repositorios locales de un servidor de ficheros windows. Por ello me dispuse a estudiar como funcionaban los modulos de subversion sobre el apache de windows.

Lo primero que hice gue toparme con las incompatibilidades de las versiones de Apache (tonto de mi que no lo hacia funcionar correctamente). Pero finalmente pude testear el rendimiento de instalarlo sobre un windows o un linux. El apache de linux ganó aun montando un sistema de ficheros mediante CIFS y accediendo a los repositorios montados atraves de la red.

Pero bueno, vamos allá que esto también me sirvió para ver como se hace en windows.

1.- Paquetes que utilizaremos:

svn-win32-1.4.4.zip
apache_2.2.4-win32-x86-no_ssl.msi

2.- Instalamos Apache (apache_2.2.4-win32-x86-no_ssl.msi), quedara configurado en: C:\Archivos de programa\Apache Software Foundation\Apache2.2

3.- Descargar subversion 1.4.4 y descomprimirlo en C:\subversion Podemos configurar la carpeta para que quede bien el arbol de directorios y evitar subdirectorios.

4.- Copiar los archivos mod_authz_svn.so y mod_dav_svn.so , que se encuentra en C:\subversion\bin, en C:\Archivos de programa\Apache Software Foundation\Apache2.2\modules

5.- Copiar los archivos intl3_svn.dll y libdb44.dll, que se encuentra en C:\subversion\bin.

6.- Añadir las siguientes líneas (en la sección donde está la carga de librerías) al archivo C:\subversion\bin, en C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf\httpd.conf para cargar las correspondientes librerias:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dav_module modules/mod_dav.so #(es probable que exista, simplemente hay que asegurarse de que no esté comentada)
LoadModule dav_fs_module modules/mod_dav_fs.so #(es probable que exista, simplemente hay que asegurarse de que no esté comentada)

7.- Añadir la siguiente línea (al final) al archivo C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf\httpd.conf para cargar la configuración de subversion:

Include “APACHE_INSTALL_DIR/conf/extra/httpd-subversion.conf”

Tambien se puede incluir directamente la llamada al directorio de subversion en el archivo httpd.conf en vez de redireccionar a otro archivo con include.
8.- Configuracion de Apache con autenticacion. En este caso lo he querido probar con con una autenticacion basica.

Creamos el archivo C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf\extra\httpd-subversion.conf con la siguiente configuración (es sólo un ejemplo):

<Location /repos>
DAV svn
SVNParentPath “C:/repos”
AuthzSVNAccessFile “C:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/svn-groups.conf”
AuthType Basic
AuthName “Subversion repository”
Require valid-user
AuthUserFile “C:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/svn-users.conf”
</Location>

Cuidado con las rutas!. Atencion a la contrabarra!. Básicamente se indica donde van a estar nuestros repositorios de subversion, el archivo con los grupos y usuario de subversion

9.- Ahora tenemos que crear los archivos svn-groups.conf y svn-users.conf. Para el primero de ellos tenemos:

[groups]
test-group: recena
[test:/]
@test-group:rw

Esto es la definición de grupos y a continuación, nombre del repositorio (que tendremos que crearlo) y permisos del grupo sobre el raiz del repositorio.

Para crear un usuario, hacemos uso de la utilidad htpasswd que nos proporciona Apache. Usando usuarios hay que crear el usuario y asociarlo al fichero de usuarios descrito. Abrimos una consola de MSDOS:

cd C:\Archivos de programa\Apache Software Foundation\Apache2.2\bin
htpasswd.exe svn-users.conf “israel”

Con esto nos pedira la contraseña para el usuario “israel”

Para crear el repositorio que hemos descrito arriba, hacemos uso de la utilidad svnadmin que proporciona subversion:

svnadmin create C:\repos

Con esto arrancamos Apache. Si nos da algun error podemos mirar los errores a la hora de cargar las librerias con:

httpd.exe -e debug

Una vez arrancado correctamente Apche accedemos a la url http://localhost/repos/ dondeNos pedira el usuario y contraseña de “israel”.

10.- Configuracion de Apache sin autenticacion

Finalmente para no usar usuarios he dejado el archivo httpd-subversion.conf como sigue:

#<Location /repos>
#        DAV svn
#        SVNParentPath “C:/repos”
#        AuthzSVNAccessFile “C:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/svn-groups.conf”
#        AuthType Basic
#        AuthName “Subversion repository”
#        Require valid-user
#        AuthUserFile “C:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/svn-users.conf”
#</Location>
<Location /repos>
DAV svn
SVNPath c:/repos
</Location>

Para utilizar los comandos de subversion desde la shell de MSDOS debemos de añadir una variable de windows:

set svn_editor=notepad
svn commit

Al utilizar Tortoise no es necesario usar la consola de comandos de svn ya que con Tortoise se pueden crear carpetas en los repositorios.

Esto es todo.

Etiquetas: , , ,

Una respuesta to “Apache subversion sobre Windows”

  1. Carmen Says:

    Hola oye creo que el punto 5 esta incompleto podrías corregir. Excelente trabjo y gracias por tu aportacion

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: