WebDAV no CentOS - recebendo erro 403 ao tentar fazer upload

4

Eu configurei o Apache2 para permitir o WebDav em um diretório (CentOS 5 / Plesk 8.6):

  • O WebDav está ativado no httpd.conf
  • / var / lib / dav / lockdb é gravável pelo Apache
  • Meu diretório de destino é chmod 777
  • Meu diretório de destino é o apache: psacln
  • usando a autenticação básica (configuração por interface Plesk)

no meu vhost.conf eu tenho:

<Directory /var/www/vhosts/domain.com/httpdocs/target_dir>
        Dav On
    AllowOverride none
        Order allow,deny
        Allow from all
</Directory>

Eu posso conectar-me ao diretório usando autenticação bem e baixar arquivos dele. Mas eu não posso escrever para o dir. Eu recebo um Erro 403 quando tento fazer upload ou criar um diretório.

Alguém tem alguma dica?

Agradecemos antecipadamente -

Update - 6/5 Usando os comentários abaixo, isolei o problema de ser algum tipo de conflito com diretórios protegidos .htpasswd. Eu posso criar um diretório desprotegido e permitir o upload de WebDAVs. Mas assim que eu habilito o Basic Auth no diretório, tudo vai para o sul. Eu posso ler, mas não faço mais upload.

Este é o meu vhost.conf:

<Directory /var/www/vhosts/domain.com/subdomains/subdomain/httpdocs/>
        AuthUserFile /var/www/.htpasswd
        AuthName "Login"
        AuthType Basic
        Require valid-user

        DAV on
    AllowOverride none
        <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
                Require valid-user
        </Limit>
</Directory>

Atualização 6/6

Conseguiu que o WebDAV funcionasse em um domínio diferente com o mínimo de esforço. A única diferença entre os dois domínios é que, no que se recusa a permitir acesso de escrita, eu tenho uma diretiva DocumentRoot:

    DocumentRoot /var/www/vhosts/domain.com/httpdocs/app/webroot

Isso pode estar causando alguns problemas?

    
por Darren Newton 05.06.2009 / 03:14

6 respostas

2

Eu recentemente lutei com o mesmo problema no meu sistema Fedora 10. No meu caso, o culpado foi algum redirecionamento estranho que eu estava fazendo no Apache. Especificamente, eu uso um sistema de gerenciamento de conteúdo (Drupal, para ser exato) que dentro dele. O .htaccess inclui a seguinte lógica de redirecionamento para redirecionar arquivos ausentes para um script PHP:

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Faz sentido que o acima apenas afete o método PUT, já que nesse caso o REQUEST_FILENAME não existe.

Não ter a área WebDAV dentro da área do Drupal, o que parece ser uma restrição razoável, corrige o problema.

Além disso, acho que é provável que o SELinux resulte em um erro diferente, mas não é mencionado na discussão acima. Você tentou desativar o SELinux?

    
por 13.07.2009 / 08:14
4

O mesmo problema. Resolvido por:

<Location /xyz>
    DAV On
    AuthType Digest
    AuthName "webdav-xmarks"
    AuthDigestProvider file
    AuthUserFile "/home/xy/xba/digest-password"
    Require valid-user
    RewriteEngine off <-- this part solved it!
</Location>
    
por 14.10.2010 / 03:49
1

O que o seu error_log diz? Esse é o primeiro lugar para procurar.

Além disso, procure no access_log normal; às vezes, alguns clientes DAV tentam fazer coisas de DAV em diretórios de nível mais alto do que onde você está trabalhando, o que requer que eles tenham pelo menos acesso DAV somente leitura até a raiz do virtualhost.

    
por 05.06.2009 / 03:21
1

Você tentou usar o limite: (por exemplo)

  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require valid-user
  </Limit>
    
por 05.06.2009 / 07:52
1

O mesmo problema.

Resolvido criando um arquivo .htaccess no diretório webdav com:

RewriteEngine off

Encontrado aqui: link

    
por 17.11.2009 / 12:15
0

Como Ram Prasad disse, você precisa da declaração Limit na entrada Directory no seu arquivo vhosts.config.

Você também precisa de um diretório .DAV de propriedade do apache no mesmo diretório que o arquivo .htaccess. Eu encontrei isso geralmente faz com que o erro 403, como o Apache usa esta pasta para gravar arquivos temporários para.

Veja também: link

    
por 05.06.2009 / 09:20