Cómo montar un repositorio subversion, con Apache, para que sea accesible remotamente
Un buen sitio es /var
root@example:/var# mkdir svn
root@example:/var# cd svn
root@example:/var/svn# svnadmin create repo
Lo más sencillo es editar el fichero /etc/apache2/mods-available/dav_svn.conf. Tienes que añadir un bloque similar a éste:
<Location /svn/myrepo> DAV svn SVNPath /var/svn/repo </Location>
Ahora hay que asegurarse de que el módulo DAV_SVN está activado. Normalmente estará activado automáticamente, pero si no es tu caso, se hace con:
# a2enmod dav_svn
Hay que permitir que Apache pueda leer y escribir en el repositorio:
# chown -R root.www-data /var/svn # chmod -R g+rw /var/svn
No se te olvide…
# /etc/init.d/apache2 reload
El repositorio es accesible, para clientes subversion, webdav o navegadores web convencionales, a través de:
http://example.com/svn/myrepo/
Con esto tendrás un repositorio complemente público. Todo el que quiera podrá acceder tanto para descargar como para subir ficheros. Como eso normalmente no es lo deseable, sique leyendo…
Si lo que quieres es que solo unos usuarios concretos puedan acceder al repositorio tienes que definirlo de este modo:
<Location /svn/myrepo> DAV svn SVNPath /var/svn/repo AuthType Basic AuthName "My Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
La sistaxis es análoga a la que se utiliza en Apache para restringir el acceso a un directorio. El fichero /etc/apache2/dav_svn.passwd es un fichero de claves típico de Apache. Para añadir usuarios utiliza el método habitual:
# htpasswd2 /etc/apache2/dav_svn.passw usuario
En este caso es muy recomendable habilidar SSL en el servidor Apache, pues de otro modo la contraseña viajaría ‘en claro’ a través de la red.
Otra posibilidad (muy común en el mundo del software libre) es tener un repositorio accesible para todo el mundo, pero sólo modificable por ciertos usuarios. En este caso la configuración sería algo como:
<Location /svn/myrepo>
DAV svn
SVNPath /var/svn/repo
AuthType Basic
AuthName "My Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
Comments
Correccion al crear usuarios
Hay que usar el parárametro "-c" para crear el fichero "/etc/apache/dav_svn.passw", por ejemplo:
# htpasswd -c /etc/apache2/dav_svn.passw xyz
New password:
Re-type new password:
Adding password for user xyz
Si no existe
Eso solo cuando crees el primer usuario y si no existe el fichero con anterioridad... básicamente -c le dice que cree el fichero
Setting up Subversion and websvn on Debian
Setting up Subversion and websvn on Debian | es
No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.
Mútiples repositorios con contraseñas
¿Cómo se hace para tener varios repositorios con contraseñas? Es que tengo funcionando un repositorio perfectamente con contraseña, pero he intentado habilitar otros 2 más y funcionan, pero no usan para nada las contraseñas que les he dado ...
*************************************************************
Dime con quien deambulas y te manifestaré tu idiosincracia
Debería...
…bastar con indicar un
AuthUserFiledistinto para cada unoNo soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.
Faltan módulos
Yo he tenido que habiltar algunos módulos más para poder acceder. Me parece que ha funcionado cuando he puesto #a2enmod authn_file
Previamente también cargué todos los módulos auth_*, pero no sé si serán necesarios...
Nacho
Util no, utilísimo
Que buena recete ... a ver si termino de instalarle la Debian al servidor de mi casa y lo pongo con svn y todo ...
*************************************************************
A quien ubérrima conífera se adosa, óptima umbría le entolda