Múltiplas repos do SVN no setup do HTTPdd vhost

1

Eu gostaria de ter minha configuração de servidor svn / http para que eu possa acessar vários repositórios através de um subdomínio "svn":

  • link
  • link

Estou usando o Debian 6 e já tenho vários vhosts configurados através do método padrão sites-available .

Recursos e seus problemas:

Como: Subversion SVN com Apache2 e DAV

Este não lida com um servidor com vários vhosts.

Instalando e configurando o Subversion
  • Este só considera um repositório do subversion.
  • Este aqui mostra colocando o SVN DAV <Location> no arquivo svn vhost.
    • No entanto, ele não diz se deve colocar ou fora da tag <VirtualHost> .
    • Isso realmente limita o acesso do subversion a apenas esse vhost? Eu apenas tentei, e posso acessar / foorepo de qualquer subdomínio.
Configurando o Subversion e o Trac como hosts virtuais em um servidor Ubuntu
  • Este parece ser muito próximo, mas ainda posso acessar repos de qualquer vhost. Em outras palavras, não importa qual subdomínio eu especifico, desde que o caminho corresponda ao nome do repositório. Não faz nenhum sentido. E sim, minha tag <Location> está dentro da <VirtualHost> .

Muitos desses artigos parecem ter sido escritos em 2006 ou antes, e não necessariamente estão em conformidade com os métodos de configuração que as novas distribuições estão usando.

Alguém pode me guiar na direção certa?

    
por Jonathon Reinhart 20.03.2012 / 04:30

1 resposta

1

configuration methods that newer distros are using

Não correlaciona de qualquer forma com a configuração do SVN-WebDAV dentro de 1. um 2. qualquer 3. (esqueci-lo) ... site dentro da instalação do Apache, independentemente de ser contêiner do Site principal ou do VirtualHost usava. Se você não consegue entender as configurações do httpd.conf e traduzi-las em "ações e resultados" - não é problema de documentação, são problemas mentais, pessoalmente seus.

Ainda estou muito bem hoje de manhã, você tem motivo para ser feliz.

Vamos explorar sua tarefa de negócios

have my svn/http server setup so I can access multiple repositories via a "svn" subdomain

que foi traduzido para tarefa técnica como

  • Possui um host (virtual) svn.example.com
  • Tenha o SVN-DAV na raiz do host
  • O gerenciamento fácil de múltiplos repositórios sob raiz requer o uso de SVNParentPath
  • Adicione suporte a SSL depois de tudo

Implementação

  1. Criando svhost vhost (deixe esta tarefa para você)
  2. Adicionando a configuração do Apache necessária para os módulos do Subversion (deixe a tarefa LoadModule para você)
  3. Configurar localização para o SVN

Usaremos a configuração do Subversion Book , final do capítulo " Basic Apache Configuration ", como ponto de partida

<Location /svn>
  DAV svn

  # Automatically map any "/svn/foo" URL to repository /var/svn/foo
  SVNParentPath /var/svn
</Location>

Mova o contêiner Location dentro do contêiner VirtualHost (Virtualhost baseado em nome) (porque o aninhamento inverso é impossível), corrija o caminho do local

    NomeServidor svn.example.com     DocumentRoot /home/svn.example.com/docroot

<Location />
    SVNParentPath /home/svn.example.com/svnroot
    SVNListParentPath on
</Location>

mas /etc/apache2/conf.d/subversion.conf tem dicas

Do not set DocumentRoot. It is not needed here and just causes trouble.

e

Map the error documents back to their defaults.

Otherwise mod_dav_svn tries to find a "error" repository.

mas com caminhos diferentes em DocumentRoot e SVNParentPath virthost funciona (DocumentRoot simplesmente nunca foi usado, porque / interceptado por dav_svn) e diretivas ErrorDocument foram adicionadas apenas para conforto "se erro vai acontecer, nós temos a resposta usual sem má interpretação "

<VirtualHost *:80>
    ServerName svn.example.com
    DocumentRoot /home/svn.example.com/docroot

    <Location />
        SVNParentPath /home/svn.example.com/svnroot
        SVNListParentPath on
    </Location>

    ErrorDocument 400 default
    ErrorDocument 401 default
    ErrorDocument 403 default
    ErrorDocument 404 default
    ErrorDocument 405 default
    ErrorDocument 408 default
    ErrorDocument 410 default
    ErrorDocument 411 default
    ErrorDocument 412 default
    ErrorDocument 413 default
    ErrorDocument 414 default
    ErrorDocument 415 default
    ErrorDocument 500 default
    ErrorDocument 501 default
    ErrorDocument 502 default
    ErrorDocument 503 default
</VirtualHost>
    
por 20.03.2012 / 05:59