Configurando o servidor SVN no CentOS como um host virtual

1

Então, acompanhei todos os tutoriais que posso encontrar no Google e ainda não consigo fazer isso funcionar. Abaixo está o arquivo subversion.conf que tenho na minha pasta conf.d do meu servidor.

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

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

        <Location /repo>
                DAV svn
                SVNParentPath   /home/svn.example.com/repo
        </Location>
</VirtualHost>

Eu já instalei o subversion via yum, assim como dav_svn.

Eu só quero acessar meu repositório sem segurança ainda ... Vou adicionar isso em breve, mas agora o resultado é que eu recebo a Página de Teste do Servidor HTTP Apache padrão que indica que o servidor está instalado, mas não há arquivos no diretório. O que estou fazendo errado?

    
por Ken Anderson 29.10.2011 / 02:34

1 resposta

1

Introdução

  1. Você tem trabalhos inacabados nos lados do Apache e do Subversion
  2. Para os repositórios, afinal você tem que criar pelo menos um

Detalhes

Extração da minha configuração do Apache para repo servido por http (em "site principal", mas não importa neste caso), editado para seus caminhos

LoadModule dav_module mod_dav.so
LoadModule dav_svn_module mod_dav_svn.so
...
<Directory />
...
  RewriteEngine on
  RewriteCond %{REQUEST_URI} ^/repo$
  RewriteRule ^(.*/repo)$ %1/ [R=301,L]
</Directory>
<Location /repo/>
  DAV svn

  SVNListParentPath on
  SVNParentPath /home/svn.example.com/repo
  • dav_module necessário para o dav_svn_module
  • Todos os repos estarão no URL link *, não na raiz , regra de reescrita na raiz redirecionará todas as solicitações da raiz para a localização de DAV-SVN.
  • BTW - colocar repositórios dentro do espaço web é uma má idéia (segurança em mente), SVNParentPath pode definir local fora do site. Mas vou prosseguir com o seu antigo caminho aqui
  • SVNListParentPath on permite mostrar a lista de repos no navegador comum
  • Não se esqueça de chmod | chgrp corretamente repo root - O usuário do Apache deve ter direitos de leitura-gravação em repos, você provavelmente também deseja ter acesso local aos repositórios

Aqui, o lado do Apache, podemos considerar como concluído (TBT!)

Lado do Subversion:

  • cd /home/svn.example.com/repo
  • mkdir repo1
  • svnadmin create /home/svn.example.com/repo/repo1
  • repita mkdir + svnadmin create para todos os repos necessários

Etapas finais

  • Verifique os resultados no navegador link
  • Checkout qualquer repositório (ainda vazio), adicionar arquivos, confirmar
  • Divirta-se
por 29.10.2011 / 04:24