Instalación de un Servidor de Subversion con Apache en Windows

Por Carlos Zuluaga (abril de 2010).

Esta es una guía de instalación y uso de un repositorio de subversión configurado con acceso a través de HTTP usando el servidor Apache.
La guía también incluye instrucciones para la creación de un repositorio base y su administración.

Instalación de Subversion

El siguiente procedimiento le guiará paso a paso en la instalación de subversión en Windows.

1. Descargue Subversión de la URL http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100 seleccionando el archivo Setup-Subversion-1.6.6.msi como indica la figura:

Instalación de Subversion

2. Ejecute el archivo descargado.

3. Presione el botón Next.

Instalación de Subversion

4. Presione el botón Next.

Instalación de Subversion

5. Seleccione el directorio donde desea instalar la aplicación y seleccione Next.

Instalación de Subversion

6. Presione el botón Install para iniciar el proceso.

Instalación de Subversion

7. Espere que el proceso de instalación finalice.

Instalación de Subversion

8. Presione finish para finalizar.

Instalación de Subversion

9. Después de la instalación la carpeta binaria de Subversión debe estar en el path de ejecución del sistema operativo. Verifique que esto sea cierto abriendo una consola de comandos y ejecutando svn. Debe obtener un resultado como muestra la siguiente figura.

Instalación de Subversion

10. Si el comando anterior le mostró el resultado esperado, el proceso de instalación fue exitoso.

Creación del Repositorio Base

Las siguientes instrucciones le guiarán en el proceso de crear el repositorio base de trabajo.

1. Cree un directorio para almacenar el nuevo repositorio. En nuestro caso crear la carpeta c:\reposvn.

2. Cree un nuevo repositorio en una nueva consola usando el comando svnadmin create. Por ejemplo svnadmin create c:\reposvn\prueba.

Instalación de Subversion

3. Verifique que se haya creado una estructura como la indicada a continuación:

Instalación de Subversion

4. Como estándar es importante que cree dentro del repositorio las carpetas trunk, branches y tags. Esto lo puede hacer descargando el repositorio con un usuario que tenga permisos de escritura sobre la raíz y adicionando las carpetas.

Instalación y Configuración de Apache

Instalación

3.1. Instalación.
El siguiente procedimiento le guiará en la instalación de Apache en Windows.

1. Descargue Apache de la siguiente URL http://httpd.apache.org/download.cgi seleccionado la opción Win32 Binary including OpenSSL como muestra la siguiente imagen:

Instalación de Apache

2. Ejecute el archivo descargado para iniciar el proceso de instalación.

3. Presione Next.

Instalación de Apache

4. Acepte los términos de la licencia y presione Next.

Instalación de Apache

5. Ingrese los siguientes datos (estos parámetros se pueden modificar posteriormente) y presione Next:

  • Network Domain: Dominio de la red en que se está instalando Apache. Por ejemplo ejemplo.com.co.
  • Server Name: Nombre del servidor. Por ejemplo localhost.
  • Administrator’s Email Address: Correo del administrador de la plataforma. Por ejemplo moc.liamg|rodartsinimda#moc.liamg|rodartsinimda.
  • Seleccione en el tipo de instalación la que es para todos los usuarios con un servicio que inicie automáticamente por el puerto 80. Este puede ser modificado posteriormente.
Instalación de Apache

6. Seleccione el tipo de instalación Typical y presione Next.

Instalación de Apache

7. Seleccione el directorio donde desea instalar el producto y presione Next. En nuestro caso elegimos el directorio por defecto:

Instalación de Apache

8. Presione Install para comenzar el proceso.

Instalación de Apache

9. Espere que la instalación finalice.

Instalación de Apache

10. Presione Finish para finalizar el proceso.

Instalación de Apache

11. Si la aplicación fue exitosa podrá visitar la dirección http://localhost:8080 y verá el mensaje: It Works!.
12. Si alguna aplicación ya tiene asignado el puerto 80, al final del proceso de instalación verá dos mensajes de error como se muestran en la pantalla.

Instalación de Apache
Instalación de Apache

13. Para solucionar este problema debe editar el archivo httpd.conf de Apache. Para editarlo puede ir directamente a la carpeta de instalación y abrir el archivo %DIRECTORIO_INSTALACION%\conf\httpd.conf o navegar a través del menú inicio como muestra la siguiente imagen:

Instalación de Apache

14. Vaya a la línea mostrada en la siguiente imagen:

Instalación de Apache

15. Cambie el puerto de escucha por uno que no esté asignado (por ejemplo 7070).

Instalación de Apache

16. Abra el monitor del servidor Apache haciendo doble clic sobre el ícono que aparece en la parte inferior derecha de su pantalla.

17. Seleccione el servidor y presione Start.

Instalación de Apache

18. Debe aparecer un mensaje indicando que el servidor arrancó.

Instalación de Apache

19. Si la aplicación fue exitosa podrá visitar la dirección http://<nombre_o_ip>:7070 y verá el mensaje: It Works!

Instalación de Apache

20. El proceso de instalación de Apache finalizó y ha sido exitoso.

Configuración

Las siguientes instrucciones le guiarán en la configuración del servidor Apache para que sirva como puerta de acceso al nuevo repositorio controlando usuarios, accesos y permisos.

1. Copie los archivos mod_dav_svn.so y mod_authz_svn.so que se encuentran en la carpeta %INSTALACION_SVN%\bin (C:\Program Files\Subversion\bin) dentro del directorio %INSTALACION_APACHE%\modules (C:\Program Files\Apache Software Foundation\Apache2.2\modules).

2. Copie los archivos libdb44.dll y intl3_svn.dll que se encuentran en la carpeta %INSTALACION_SVN%\bin dentro del directorio %INSTALACION_APACHE%\bin.

3. Edite el archivo httpd.conf de apache ubicado en %INSTALACION_APACHE%\conf (C:\Program Files\Apache Software Foundation\Apache2.2\conf) y agregue las siguientes líneas:

LoadModule dav_svn_module modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so
Instalación de Apache

Elimine el comentario (#) de la siguiente línea:

LoadModule dav_module modules/mod_dav.so
Instalación de Apache

4. Edite la sección que empieza con <Directory /> de forma que quede como se indica a continuación:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

5. Agregue las siguientes líneas al final del mismo archivo:

<Location /svn>
  DAV svn
  SVNParentPath c:/reposvn

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile c:/reposvn/custom-config/svn-password.pass

  AuthzSVNAccessFile c:/reposvn/custom-config/svn-authz.conf
  Require valid-user
</Location>
Instalación de Apache

6. Las líneas c:/reposvn/custom-config/svn-password.pass y c:/reposvn/custom-config/svn-password.conf indican los archivos de contraseñas y de permisos respectivamente. En los siguientes pasos los archivos serán creados.

7. Dentro de la carpeta c:\svnrepos cree una llamada custom-config.

8. Abra una ventana de comandos (inicio —> ejecutar —> cmd) y ubíquese en la carpeta creada en el paso anterior (c:\svnrepos\custom-config) y ejecute el siguiente comando:

"c:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd" -cm svn-password.pass admin

9. La consola le pedirá la contraseña para el usuario admin dos veces, ingrésela para finalizar la creación.

Instalación de Apache

10. Cree un nuevo usuario llamado test:

Instalación de Apache

11. Dentro del mismo directorio cree un nuevo archivo llamado svn-authz.conf con el siguiente contenido:

[groups]
administrator = admin.
prueba = test

[/]
@administrator = rw
@prueba = r

[/trunk]
@prueba = rw

[/branches]
@prueba = rw

[/tags]
@prueba = rw

12. Reinicie el servidor Apache.

13. Visite la dirección http://<servidor>:7070/svn/prueba/ (http://localhost:7070/svn/prueba/). Cuando la página le solicite un usuario y clave ingrese uno de los creados anteriormente y si la instalación fue correcta debe ver una imagen similar a la siguiente:

Instalación de Apache

14. La imagen anterior indica que la instalación y configuración de Subversion con Apache fue exitosa. El siguiente paso es instalar un cliente y comenzar a usar el repositorio.

Administración del Repositorio y Usuarios

Crear y Eliminar Usuarios

La administración de usuarios del repositorio se hace con el comando htpasswd que provee el servidor Apache. Para ejecutar algún comando ubíquese en la carpeta donde está o va a estar el archivo de contraseñas y use c:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd (o el directorio que haya seleccionado para la instalación) como predecesor de cualquier instrucción.
A continuación una lista de comandos básicos para la administración de usuarios:

  • htpasswd –cm <archivo_claves> <usuario>: Crea un nuevo usuario y un archivo de contraseñas. Al ejecutarlo el sistema le solicitará la contraseña del nuevo usuario.
  • htpasswd –m <archivo_claves> <usuario>: Modifica la contraseña del usuario si este ya existe o crea un nuevo usuario en caso contrario. Al ejecutar el comando le solicitará la nueva clave.
  • htpasswd –D <archivo_claves> <usuario>: Elimina un usuario.

Creación de Nuevos Repositorios

Para crear un nuevo repositorio debe crearlo con el comando svnadmin create y realizar la configuración de un nuevo directorio en el archivo httpd.conf del servidor Apache. Use los mismos pasos de la sección Creación del Repositorio Base. No tiene que crear nuevos archivos de usuarios o de autorización sino que puede ampliarlos con la nueva configuración.

Asignación de Permisos

Para asignar permisos de lectura o escritura a un nuevo usuario agréguelo en el archivo c:\reposvn\custom-config\svn-authz.conf asociándolo a un grupo. Puede crear grupos nuevos y editar sus permisos o simplemente agregue el usuario al grupo datacenter para que tenga los permisos más comunes.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License