Apache WebDAV interpreta los ficheros PHP al descargarlos

ApacheUn 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>