Não é possível confirmar o repositório SVN via http

2

Quando tento importar um projeto para meu repositório do subversion via http, recebo este erro:

Can't create directory '/usr/local/svn/myproj/db/transactions/0-1.txn': Permission denied

Eu configurei o httpd LogLevel para depurar e obtive isso no final da saída:

[Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190] Could not create activity /svn/myproj/!svn/act/9c0a8481-8edd-4be0-be2d-164c700616ba.  [500, #0]
[Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190] could not begin a transaction  [500, #13]
[Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190] Can't create directory '/usr/local/svn/myproj/db/transactions/0-1.txn': Permission denied  [500, #13]

Aqui está a seção relevante do meu arquivo httpd.conf:

<Location /svn>
    DAV svn
    SVNParentPath /usr/local/svn
    AuthType Basic
    AuthName "Subversion Repositories"
    AuthUserFile /etc/svn-auth-conf
    Require valid-user
</Location>

Estou tentando importar um projeto do NetBeans usando a URL http://myhostname/svn/myproj .

Estou usando o CentOS linux.

As correções para este problema que encontrei on-line são para definir o repositório (e a pasta de fechamento) para pertencer ao usuário do apache e modificar as permissões do mesmo. Eu tentei o seguinte sem sucesso:

$ chown -R apache.apache /usr/local/svn
$ chmod -R 755 /usr/local/svn
$ service httpd restart

Eu não consigo descobrir o que mais tentar. Por favor ajude!

    
por titaniumdecoy 18.02.2010 / 09:05

4 respostas

1

Eu acho que você tem o SELinux ativado (normal para a instalação padrão do CentOS). Acredito que a política de segurança para o httpd proíba o acesso a arquivos fora de /var/www por padrão. Certamente não permite acesso a /usr/local . Usar /var/www/svn como o local do repositório impedirá as negações de acesso pelo SELinux.

    
por 20.02.2010 / 05:14
1

Você já criou ou moveu um diretório de repositório existente para este local?

svnadmin create /usr/local/svn/insert_your_projectname

Em seguida, atualize as permissões

chown -R httpd:httpd /usr/local/svn
chmod -R 755 /usr/local/svn
service httpd restart
    
por 18.02.2010 / 09:11
1

Você pode configurar o SVN no SVNParentPath / usr / local / svn ou qualquer caminho que quiser, mas você precisa fazer alguma coisa.

Siga este passo.

  run command 
                chcon -t httpd_sys_content_t  /usr/local/svn

Ps, - chcon são arquivos de reclassificação de comandos.

- The httpd_sys_content_t type allows the httpd process to access that file.
    
por 02.12.2010 / 08:13
0

Eu consegui trabalhar com as seguintes alterações, embora eu não saiba qual era o problema.

Mudei o diretório svn para / var / www e fiz as seguintes alterações no arquivo httpd.conf:

<Location /svn>
    DAV svn
    SVNParentPath /var/www/svn
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        AuthType Basic
        AuthName "Subversion Repositories"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
    </LimitExcept>
</Location>
    
por 18.02.2010 / 19:42