Acabei de atualizar minha máquina de teste do Apache 2.2.29 para 2.4.10 e, na verdade, estou tendo alguns problemas com o módulo webdav.
Se eu tentar fazer login em uma conta webdav, funcionará, mas se eu tentar listar meu diretório atual, recebo um erro 405.
Eu sei que algumas configurações mudaram com esta nova versão, fiz algumas alterações para deixar meu virtualhost compatível com 2.4.
Eu tenho 2 virtualhost, na verdade, todos eles vêm da minha configuração 2.2, atualizei-os um pouco para estar pronto com 2.4. Um deles funciona bem com webdav, mas o segundo gera um 405 no diretório de listagem.
Aqui está meu host virtual que está trabalhando :
Registro do Apache:
10.19.87.87 - maxence [02/Jan/2015:16:30:12 +0100] "PROPFIND / HTTP/1.1" 207 6331 "-" "Cyberduck/4.6.1 (16121) (Windows 7/6.1) (x86)"
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/web/working/dev/
ServerName webdav.working.test.net
ServerAlias webdav.working.test.net
ErrorLog /var/log/apache2/net.test.working.webdav-error.log
CustomLog /var/log/apache2/net.test.working.webdav-access.log combined
<Files ".ht*">
allow from all
</Files>
<Directory />
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Location />
DAV on
AuthName "test WebDAV Storage - working"
AuthType Basic
AuthUserFile /etc/apache2/htpasswd-webdav
<Limit GET POST PUT DELETE PROPFIND PROPPATCH MKCOL COPY DUPLICATE MOVE LOCK UNLOCK OPTIONS HEAD>
Require valid-user
</Limit>
AddType text/html .php .phtml
</Location>
</Virtualhost>
E agora, aquele que não está trabalhando :
Registro do Apache:
10.19.87.87 - maxence [02/Jan/2015:16:10:54 +0100] "PROPFIND / HTTP/1.1" 405 475 "-" "Cyberduck/4.6.1 (16121) (Windows 7/6.1) (x86)"
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/web/notworking/dev/
ServerName webdav.notworking.test.net
ServerAlias webdav.notworking.test.net
ErrorLog /var/log/apache2/net.test.notworking.webdav-error.log
CustomLog /var/log/apache2/net.test.notworking.webdav-access.log combined
<Files ".ht*">
allow from all
</Files>
<Directory />
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Location />
DAV on
AuthName "test WebDAV Storage - notworking"
AuthType Basic
AuthUserFile /etc/apache2/htpasswd-webdav
<Limit GET POST PUT DELETE PROPFIND PROPPATCH MKCOL COPY DUPLICATE MOVE LOCK UNLOCK OPTIONS HEAD>
Require valid-user
</Limit>
AddType text/html .php .phtml
</Location>
</Virtualhost>
Como você pode ver, minha configuração DAV é exatamente a mesma. As pastas certas têm a mesma configuração:
drwxr-xr-x 7 www-data www-data 26 déc. 24 12:07 dev
Se alguém souber por que não consigo listar meu diretório, isso me ajudará muito :)
Parece haver um monte de pessoas que se depararam com esse problema após a última atualização.
Encontrei minha resposta aqui : no Dav em diretórios, desative os recursos de índice do diretório com a seguinte diretiva:
Nota: um dos sites que administro foi desfigurado em 7 de janeiro por meio de um ataque php "Hmei7" a cópias antigas do wordpress que coloquei em um local acessível e esqueci. Não deixe aplicativos antigos baseados em php à espreita em lugares visíveis!
Como o ThBB já apontou, esse
DirectoryIndex
é o problema, porque o script de índice receberá a solicitação HTTP e não a tratará.No meu caso, preciso do recurso de índice, porque tenho um aplicativo da web no diretório de destino. Eu tenho um script de implantação que exclui o diretório, cria-o novamente e carrega todos os arquivos. Para manter meu script de implantação funcionando
DirectoryIndex
, simplesmente tive que fazer umaDELETE
solicitação adicional para o arquivo de índice antes daDELETE
solicitação para o diretório que o contém: