NetAdmin (just me being so Nerd)

you can’t connect the dots looking forward…

Instalando Subversion SVN con WebSVN, Apache2 y DAV en Sistamas basados en Debian

16 August 2007

El titulo en ingles para google “Installing Subversion SVN with WebSVN, Apache2 and DAV on Debian based system:P

Proposito del How to:

Este how to es una forma de instalar y configurar Subversion y WebSVN en un linux basado en Debian con las siguientes caracteristicas:

-Multiples Repositorios
-Acceso a los repositorios via WebDAV
-Control de Acceso via Apache
-WebSVN securizado (Aplicacion php para busquedas faciles sobre los repos)

Instalando Apache2 con PHP5

De esta forma instalamos los paquetes necesarios de apache y php5:

apt-get install apache2 apache2.2-common apache2-mpm-worker apache2-utils php5

Instalando Subversion:

Paquetes de Subversion

Usar los siguientes comandos para instalar los paquetes necesarios para Subversion:

sudo apt-get install subversion libapache2-svn

Creando y Publicando repositorios:

Utilizar el siguiente comando para crear un repositorio:

sudo svnadmin create /path to some directory/new-project/

Una buena practica seria tener todos los repositorios en el mismo sitio, por ejemplo en /opt/svn/ (/opt/svn/repositorio)

Corregir los permisos del repositorio y darle acceso solo al usuario de apache:

chmod -R 775 /svn/new-project
chown -R www-data:www-data /svn/new-project

Configurando Apache

Ahora es el momento de configurar apache, abrir el archivo /etc/apache2/mods-available/dav_svn.conf y agregar un nuevo “directorio virtual” que haga referencia al repositorio de esta manera:

<location /new-project>
DAV svn
SVNPath /svn/new-project
AuthType Basic
AuthName "new-project"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
Require valid-user
</location>

Crear un nuevo archivo de usuarios:

CUIDADO, este comando se debe utilizar al crear el 1er usuario:

htpasswd2 -c /etc/apache2/dav_svn.passwd nombre_usuario

Para agregar o cambiar el passowrd utilizar el siguiente comando:

htpasswd2 -m /etc/apache2/dav_svn.passwd username

New password: password

Re-type new password: password

Adding password for user username

Despues de agregar un nuevo usuario hay que agregarlo en el archivo de autorizados a modificar y agregar codigo:

Permisos de Usuarios:

En el archivo /etc/apache2/dav_svn.authz, agregar el usuario en el repositorio correspondiente en la seccion [repositorio:/].

por ejemplo:

[repositorio:/]
esteban.lopez = rw
hernan.dominguez = r

tambien se pueden generar grupos de usuarios de esta forma:

[groups]
users = esteban.lopez,hernan.dominguez

y el repo quedaria asi:

[repositorio:/]
@users = rw

Se podra acceder al repositorio via web usando la url: http://server:port/repositorio/

Despues de todos estos cambios, se debe reiniciar apache con el siguiente comando:

apache2ctl restart

  1. Jose Said,

    Hola,
    buen post, pero tengo un problema, no puedo ver la lista de repositorios, en tanto que si puedo ingresar al repositorio.Tengo esto en mi httpd.conf:
    [code]

    DAV svn
    SVNParentPath “C:/svn”
    SVNListParentPath on
    SVNIndexXSLT “/svnindex.xsl”
    ##
    Satisfy Any
    AuthType Basic
    AuthName “Repositorio Subversion”
    AuthUserFile “M:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/.htpasswd”
    AuthzSVNAccessFile “M:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/control_acceso.txt”
    Require valid-user
    ##

    [/code]

    Y en control_acceso.txt tengo:
    [code]
    [/]
    *=r
    [ProyectoI:/]
    jose=rw
    david=rw
    [/code]

    Que crees que pueda ser.
    Gracias por tu atencion.

  2. Jose Said,

    Hola,
    buen post, pero tengo un problema, no puedo ver la lista de repositorios, en tanto que si puedo ingresar al repositorio.Tengo esto en mi httpd.conf:

    DAV svn
    SVNParentPath "C:/svn"
    SVNListParentPath on
    SVNIndexXSLT "/svnindex.xsl"
    ##
    Satisfy Any
    AuthType Basic
    AuthName "Repositorio Subversion"
    AuthUserFile "M:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/.htpasswd"
    AuthzSVNAccessFile "M:/Archivos de programa/Apache Software Foundation/Apache2.2/bin/control_acceso.txt"
    Require valid-user
    ##

    Y en control_acceso.txt tengo:

    [/]
    *=r
    [ProyectoI:/]
    jose=rw
    david=rw

    Que crees que pueda ser.
    Gracias por tu atencion.

    Ahora si.disculpa tanto texto.

Add A Comment