eu tenho acompanhadoeste guia de instalação do svne quando tento acessar meu repositório de teste acessando http://localhost/repos
, autentico com sucesso, mas recebo o seguinte:
"Forbidden You don't have permission to access /repos on this server"
Aqui está meu arquivo subversion.conf:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /repos>
DAV svn
SVNParentPath /var/www/svn/repos
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /etc/svn-auth-conf
Require valid-user
# </LimitExcept>
</Location>
Meu caminho é /var/www/svn/repos e aqui estão minhas permissões
[root@localhost svn]# ls -la repos/
total 32
drwxr-xr-x. 6 apache apache 4096 Aug 24 11:42 .
drwxr-xr-x. 3 root root 4096 Aug 24 11:42 ..
drwxr-xr-x. 2 apache apache 4096 Aug 24 13:50 conf
drwxr-sr-x. 6 apache apache 4096 Aug 24 11:42 db
-rwxr-xr-x. 1 apache apache 2 Aug 24 11:42 format
drwxr-xr-x. 2 apache apache 4096 Aug 24 11:42 hooks
drwxr-xr-x. 2 apache apache 4096 Aug 24 11:42 locks
-rwxr-xr-x. 1 apache apache 229 Aug 24 11:42 README.txt
Se eu for para localhost/repos/README.TXT recebo esta mensagem.
<D:error><C:error/><m:human-readable errcode="20">
Could not open the requested SVN filesystem
</m:human-readable></D:error>
Qualquer outro nome de arquivo é fornecido errcode ="2"
.
selinux está definido como permissivo, posso ver o arquivo localhost/index.html localizado em var/www/html/index.html perfeitamente.
Eu li algumas postagens no fórum com problemas semelhantes, sem sucesso.
Qualquer idéia seria apreciada!
EDITAR 1:
Editei meu arquivo subversion.conf para mudar SVNParentPath /var/www/svn/repos
, SVNParentPath /var/www/svn
mas parece não ter efeito.
EDITAR 2:
brain99 acertou em cheio. Mudando para Location />
resolver o problema e agora estou recebendo umrepos - Revision 0: /
Powered by Subversion version 1.6.11 (r934486).
Responder1
Parece que você está confundindo as diretivas SVNPath e SVNParentPath.
Pelo que você postou, parece que /var/www/svn/repos
contém um único repositório. Neste caso, use
SVNPath /var/www/svn/repos
Somente se você tiver vários repositórios, deverá usar SVNParentPath. Cada repositório individual deve então estar localizado em uma subpasta do diretório que você configura aqui.
Portanto, configure-o para o diretório pai:
SVNParentPath /var/www/svn
Ou deixe a configuração como está e mova seu repositório atual para um subdiretório, por exemplo, /var/www/svn/repos/myRepo
Para mais informações sobre o uso do mod_dav_svn, verifique oSeção do livro SVN em mod_dav_svn
Responder2
Primeiramente, verifique se o diretório SVNParentPath /var/www/svn/repos existe. a seguir, existem subdiretórios? deve haver diretórios de repositórios com seus próprios bancos de dados. Se o diretório estiver vazio ou não tiver subdiretórios, crie qualquer repositório usando o comando svnadmin (chamada manual). após a criação o problema ainda existe? em seguida, comente todas as diretivas AUTH* e exija e reinicie o apache. O acesso será anônimo, mas você verificará se a autorização é ou não problema. quando o acesso é possível, a autorização é um problema. você deve configurar isso. você deve ler apache man e aprender como gerenciar AuthUserFile /etc/svn-auth-conf para autorização básica. quando o problema (com autenticação comentada) ainda existe, o problema está nos direitos de acesso ao arquivo. configure o acesso de leitura/gravação ao nome de usuário usado pelo servidor Apache. ps auxww informa qual é esse usuário. número do grupo que você obterá do arquivo /etc/passwd. nome do grupo que você obterá do arquivo /etc/group. depois disso, quando você puder fazer checkout/atualizar e confirmar, poderá resolver problemas com autorização. há muitas receitas. Coloquei a pergunta "svn create my first repository" no google e recebi muitas respostas. O primeiro é por exemplo: http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/ tente este :)
por falar nisso. centos é uma distribuição Linux semelhante ao redhat. você pode reiniciar o Apache por /etc/init.d/httpd start/stop . veja o que está sendo gravado nos arquivos /etc/apache ou /etc/httpd (depende da distribuição do Linux e da configuração padrão do Apache).
Responder3
tente estas opções: SVNListParentPath on