Un problema muy común a la hora de implementar WebDAV con Apache + PHP es que si no realizamos una configuración adicional, al intentar descargar un fichero .php desde webdav lo que descagaremos será el código interpretado y no el código fuente del fichero.
Para solucionarlo podemos establecer la solución que vemos en el virtualhost a continuación. Básicamente creamos un alias a través del cual se accederá con el protocolo WebDAV, de modo que únicamente en ese alias forzaremos que el código php no se interprete:
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html ServerName testing.com ErrorLog logs/testing.com.ve-error_log CustomLog logs/testing.com-access_log common Alias /webdav /var/www/html <Location /webdav> DAV on php_value engine off AuthType Basic AuthName "webdav" Require user dav-user </Location> </VirtualHost>
Hay otras posibilidades como forzar el tipo de fichero o handler de manejo del mismo a texto plano. Esto último se podría poner a nivel general en lugar de sólo para PHP como veis en el ejemplo:
<File .php> ForceType text/plain </File>