SVN Retorna 403 Proibido

2

Eu segui estes passos na minha nova VM (Debian 6)

link

Acabei de perceber onde NameVirtualHost estava e configurei para NameVirtualHost *:443 mas isso não ajudou.

minha configuração completa do svnserver:

#<VirtualHost *:80>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.pem
    SSLProtocol all
    SSLCipherSuite HIGH:MEDIUM

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Quando eu tento acessar o site outsite a VM via navegador eu recebo um 403 Proibido.

meu dav_svn.conf:

<Location /svn>
# Uncomment this to enable the repository
DAV svn

SVNParentPath /var/svn/svn-repos

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd

  # To enable authorization via mod_authz_svn
  #AuthzSVNAccessFile /etc/apache2/dav_svn.authz

  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.  It requires the 'authz_user'
  # module (enable it with 'a2enmod').
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>

    #Added
    SVNListParentPath On

</Location>

deve permitir que usuários externos acessem o svn (como indicado no tutorial).

Então, por que recebo o erro 403?

o log de erros do apache:

[Fri Aug 10 17:51:11 2012] [error] [client my.main.pc.ip] Could not fetch resource information.  [403, #0]
[Fri Aug 10 17:51:11 2012] [error] [client my.main.pc.ip] (2)No such file or directory: The URI does not contain the name of a repository.  [403, #190001]

Eu adicionei SVNListParentPath On ao meu bloco de localização e recebo a seguinte saída no meu navegador:

<D:error><C:error/><m:human-readable errcode="2">
Can't open directory '/var/svn/svn-repos': No such file or directory
</m:human-readable></D:error>

Atualização:

Usar SVNPath e, em vez disso, usar SVNParentPath resolveu o problema. Mas eu queria usar mais de um repositório.

qualquer ajuda é apreciada!

    
por Wandang 10.08.2012 / 14:49

2 respostas

2

Parece que você configurou um SVNParentPath no apache Location , mas não forneceu um nome de repositório no cliente. Por exemplo:

<Location /svn>
  SVNParentPath /my/repos
  # ...
</Location>

acessado com o URL do cliente: http://server/svn

A URL /svn não é um repositório, mas um caminho pai, você precisaria de svnadmin create /my/repos/repo1 e, em seguida, acessar http://server/svn/repo1

Se você ativar a diretiva de caminho pai list list no bloco Location , poderá listar os sub-repositórios:

<Location /svn>
  SVNParentPath /my/repos
  SVNListParentPath On
  # ...
</Location>
    
por 11.08.2012 / 01:04
1

Como é o seu bloco <Location /svn> ? Deve ter uma instrução SVNPath ou SVNParentPath apontando para o seu repositório. Nesse mesmo bloco, deve haver o bloco <LimitExcept> .

O / var / svn / $ REPOS (ou o caminho SVN (pai) aponta para) pertence a www-data? Deve ser, ou pelo menos deve ser legível e gravável por www-data.

    
por 10.08.2012 / 20:37