Tabela de Conteúdos

Página desactualizada Esta página contém uma versão anterior deste guia que pode estar desatualizada. Para a consultar a versão mais recente clique aqui.

4.4.2 WebSVN

Objectivo

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.

Atenção

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.

Instalação

root@server:~# aptitude 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 será feita mais tarde

Configuração

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:

/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

Restrições de acesso

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:

/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.

Criação de utilizadores

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:~# /etc/init.d/apache2 restart

Verificação

Num browser inserir a URL do servidor websvn:

Referências: