O pacote de software websvn possibilita o acesso a um repositório subversion ou svn através do protocolo http ou https, oferecendo uma interface muito visual e intuitiva.
A configuração do servidor svn via http(s) depende da instalação prévia do pacote de software 3.8.1 Subversion, um sistema de controle de versões.
root@server:~# apt-get install websvn enscript
A instalação do pacote enscript é opcional, mas interessante uma vez oferece a possibilidade de colorir a sintaxe de vários tipos de ficheiros.
A instalação possibilita a criação de uma configuração mínima. Por agora recusamos: esta será feita mais tarde.
A configuração é efetuada em 2 fases: na primeira é configurado o software e na segunda é configurada a integração no servidor apache2.
A configuração do websvn é efetuada no ficheiro /etc/websvn/config.php:
# [...] // To use the parent path method (without and with optional group), uncomment the next line // and replace the path with your one. You can call the function several times if you have several parent paths. / Note that in this case the path is a filesystem path. // // $config->parentPath('Path/to/parent (e.g. c:\\svn)'); $config->parentPath('/var/lib/svn'); # [...]
Em seguida a integração no servidor apache2:
root@server:~# ln -sf /etc/websvn/apache.conf /etc/apache2/conf.d/websvn
De modo a restringir o acesso apenas a utilizadores autorizados, deverá ser incluído um mecanismo de autenticação.
Nesta configuração iremos usar o mesmo mecanismo de autenticação usado em 4.4.1 SVN via HTTP(S).
A definição do mecanismo de autenticação é feita no ficheiro de configuração /etc/websvn/apache.conf:
# Configuration for websvn using php4. Alias /websvn /usr/share/websvn <Directory /usr/share/websvn> ## No MultiViews DirectoryIndex index.php Options FollowSymLinks ## MultiViews #DirectoryIndex wsvn.php #Options FollowSymLinks MultiViews ## End MultiViews Order allow,deny Allow from 192.168.1.0/24 # Allow from All <IfModule mod_php4.c> php_flag magic_quotes_gpc Off php_flag track_vars On </IfModule> AuthType Digest AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Directory>
A opção Allow from 192.168.1.0/24
limita o acesso apenas a partir da rede interna. Caso se pretenda aceder a partir de qualquer endereço, basta especificar Allow from All
.
Como a gestão de utilizadores com permissões de acesso ao servidor websvn é partilhada com o 4.4.1 SVN via HTTP(S) a configuração é feita também no ficheiro /etc/apache2/dav_svn.passwd.
Assim, ao alterarmos os utilizadores, atualizamos os 2 serviços em simultâneo.
Ao criar o primeiro utilizador deverá ser criado o ficheiro, o que é conseguido com a opção -c
:
root@server:~# htdigest -c /etc/apache2/dav_svn.passwd "Subversion Repository" fribeiro Adding password for fribeiro in realm Subversion Repository. New password: Re-type new password:
Para adicionar os utilizadores seguintes, não usar a opção -c
, pois iria criar um novo ficheiro, eliminando os utilizadores anteriores:
root@server:~# htdigest /etc/apache2/dav_svn.passwd "Subversion Repository" user2 Adding user user2 in realm Subversion Repository New password: Re-type new password:
Reiniciar o servidor apache2:
root@server:~# service apache2 restart
Num browser inserir a URL do servidor websvn: