Después de pelearme durante una buena temporada para conseguir que todo esto funcione junto en mi PC y sin darse de leches unos con otros, he decidido poner esta receta por que pienso que tal vez a algun@ mas le pueda ser útil.
- Instalación de los paquetes necesarios:
$ sudo aptitude install apache2 openssl subversion libapache2-svn subversion-tools websvn
- Fabricamos un certificado "casero"
$ sudo mkdir /etc/apache2/ssl $ sudo RANDFILE=/dev/random openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem $ sudo chmod 600 /etc/apache2/ssl/apache.pem
- Creando el repositorio
$ sudo cd /home/ $ sudomkdir svn $ sudo svnadmin create svn/prueba
Damos de alta algunos usuarios:
$ sudo htpasswd -c -m /home/svn/.dav_svn.passwd user1
La opción -c sólo es necesaria la primera vez que ejecute este comando, a fin de crear el archivo de las contraseñas. Posteriormente ya no se ejecuta
$ sudo htpasswd -m /home/svn/.dav_svn.passwd user2
Por último otrogamos a la carpeta y a lo que esta contiene los permisos necesarios para que apache acceda a ella
$ sudo chown www-data:www-data -R svn
- Configurando apache
Para que el tema nos sea mas sencillo primero vamos a sacar una copia de una plantilla de sitio web de las que vivene por defecto con apache 2
$ cd /etc/apache2/sites-available/ $ sudo cp default svn
Una vez hecho esto damos de alta a nuestro nuevo sitio web y damos tambien de alta un modulo de apache necesario
$ sudo a2ensite svn $ sudo a2enmod ssl
A continuacion pasamos a editar nuesta copia de plantilla (svn), la editamos para adaptarla a nuestras necesidades. Recordad que es muy importante sustituir la linea "/home/svn/prueba" por la ruta a vuestro repositorio, "/svn/prueba" por la ruta a teclear despues de "https://nombrehost", y "/home/svn/.dav_svn.passwd" por la ruta a vuestro fichero de autenticaciones.
NameVirtualHost *:443SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so ... DAV svn SVNPath /home/svn/prueba AuthType Basic AuthName "My Subversion Repository" AuthUserFile /home/svn/.dav_svn.passwd Require valid-user
Creo que las lineas
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
Podrían quitarse y sustituirse por estos comandos de consola:
$ sudo a2enmod dav $ sudo a2enmod dav_svn $ sudo a2enmod ssl
Pero no estoy muy seguro :S
- Interface web
$ sudo dpkg-reconfigure websvn
Seguimos las instrucciones que aparecen, y simplemente debemos decirle a websvn en dónde están nuestros repositorios subversion
Por ultimo reiniciamos apache
$ sudo apache2ctl restart
Si todo salió bien poniendo https://localhost/websvn en nuestro navegador web, deberiamos ver nuestros repositorios y sus archivos
- Nota
Yo en el curro he puesto apache2 con ssl para un servidor python y no he tenido mayor problema. A no ser que el problema te viniese de subversión.
ResponderEliminarSi, tu intenta juntar en una misma maquina las 4 cosas del post y luego me cuentas que tal te ha ido, que apache y ssl en ubuntu se montan con la minga.
ResponderEliminarPero el modulo dav_svn y de apache para poder tener acceso a subversion hay que configurarlo a pelo majete...