Apache httpd, WebDAV e várias configurações

2

Eu tenho um diretório ( /var/www/dental-atelier.ch/ ) que gostaria de tornar acessível de duas maneiras diferentes.

Como uma página da web normal

<VirtualHost 78.47.122.114:80> 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/dental-atelier.ch 

    <Location /> 
       Options +Includes 
    </Location> 

    ServerName dental-atelier.ch 
    ServerAlias dental-atelier.ch www.dental-atelier.ch 
    ErrorLog logs/dental-atelier.ch-error_log 
    CustomLog logs/dental-atelier.ch-access_log combined 

</VirtualHost> 

e uma vez com WebDav (mas desta vez com SSL)

<VirtualHost _default_:443>

    DocumentRoot "/var/www/html"

    # Use separate log files for the SSL virtual host; note that LogLevel
    # is not inherited from httpd.conf.
    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn

    <Directory /var/www/html>
        Options +Includes
    </Directory>

    Alias /webdav /var/www/webdav

    <Directory /var/www/webdav/dental-atelier.ch/> 
        AuthType Basic 
        AuthName "Password Required" 
        AuthUserFile /etc/shadow 
        Require user user 
        DAV On 
        Options Indexes FollowSymLinks 
    </Directory> 

</VirtualHost>

Isso estava funcionando sem nenhum problema com o httpd 2.2.

Após a atualização para o 2.4, o httpd não está permitindo as duas configurações para o mesmo diretório. O primeiro trabalha sozinho (com o primeiro vhost) e o segundo sozinho com o segundo. Se eu configurar os dois, recebo

$ cadaver https://78.47.122.114/webdav/dental-atelier.ch
WARNING: Untrusted server certificate presented for 'ip1.corti.li':
Certificate was issued to hostname 'ip1.corti.li' rather than '78.47.122.114'
This connection could have been intercepted.
Issued to: ip1.corti.li
Issued by: http://www.CAcert.org, CAcert Inc.
Certificate is valid from Thu, 10 Apr 2014 10:43:34 GMT to Sat, 09 Apr 2016 10:43:34 GMT
Do you wish to accept the certificate? (y/n) y
Authentication required for Password Required on server '78.47.122.114':
Username: user
Password: 
Could not access /webdav/dental-atelier.ch/ (not WebDAV-enabled?):
405 Method Not Allowed
Connection to '78.47.122.114' closed.
dav:!> 

Alguma idéia de como tornar um diretório compartilhado por HTTP também disponível via WebDAV (para edição)?

Os logs do host virtual SSL mostram erros sobre a diretiva Includes que é especificada no host virtual não-SSL (porta 80):

ssl_access_log:

129.132.179.107 - - [19/Feb/2015:15:40:29 +0100] "OPTIONS /webdav/dental-atelier.ch/ HTTP/1.1" 401 381
129.132.179.107 - user [19/Feb/2015:15:40:34 +0100] "OPTIONS /webdav/dental-atelier.ch/ HTTP/1.1" 200 -
129.132.179.107 - user [19/Feb/2015:15:40:34 +0100] "PROPFIND /webdav/dental-atelier.ch/ HTTP/1.1" 405 261

ssl_error_log:

[Thu Feb 19 15:40:34.556872 2015] [include:warn] [pid 29499] [client 129.132.179.107:65259] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /webdav/dental-atelier.ch/index.html
[Thu Feb 19 15:40:34.557949 2015] [include:warn] [pid 29499] [client 129.132.179.107:65259] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /webdav/dental-atelier.ch/index.html

Editar

O problema está realmente relacionado a ter o mesmo diretório usado de maneira diferente em dois hosts virtuais diferentes. Se eu copiar o mesmo diretório para /var/www/webdav/test e configurar o host virtual SSL com o diretório test , tudo funcionará como um encanto.

O mesmo se aplica se eu remover o host virtual HTTP do mesmo diretório.

Se eu tiver os mesmos dados em ambos, de alguma forma, o Apache httpd detecta isso. Não foi assim em 2.2.

    
por Matteo 19.02.2015 / 13:36

1 resposta

2

Na verdade, o problema era algo diferente: o diretório contém um arquivo index.html e o Apache httpd estava entregando-o automaticamente.

Configuração

DirectoryIndex disabled 

resolveu o problema.

    
por 09.03.2015 / 21:05