El uso de DAV para gestionar los archivos de sitios web en servidores como Apache2 y Ligthy es una combinación muy útil y más segura que FTP.
El problema que se me ha presentado consiste en que tratando de descargar los archivos PHP de uno de los sistemas publicados, los archivos se descargaban con el resultado de la ejecución de los archivos PHP, es decir, código HTML.
En realidad, lo que debía ocurrir era que se descargaran los archivos crudos con el código PHP.
Luego de investigar un poco, conseguí esta información en el portal de APACHE
"One common request is to use
mod_dav
to manipulate dynamic files (PHP scripts, CGI scripts, etc). This is difficult because a GET
request will always run the script, rather than downloading its contents. One way to avoid this is to map two different URLs to the content, one of which will run the script, and one of which will allow it to be downloaded and manipulated with DAV."Entonces, lo que hice fué modificar el archivo relacionado con el virtualhost de la siguiente manera:
- vim /etc/apache2/sites-available/sitioweb
...
Alias /fvtenis "/var/www/sitio/aplicacion/"
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
... - Y agregué las directivas correspondientes al acceso vía DAV pero con un alias diferente:
Alias /sitio-fuentes "/var/www/sitio/aplicacion/"
Dav On
ForceType text/plain
AuthType Basic
AuthName "SITIO: Archivos fuentes."
AuthUserFile /etc/apache2/dav_auth/dav-auth-claves
Require valid-user
En primer lugar, se emplea la directiva "directory" para ofrecer los archivos en los directorios que deben ser ejecutados por el compilador de PHP.
En segundo lugar, se creó un alias llamado "sitios-fuentes" que define la parte final del url para acceder con el cliente DAV.
En mi caso utilizo "cadaver" y la forma de conectarme es:
cadaver http://miweb/sitio-fuentes/
En tercer lugar, obligo a que la entrega de los archivos sea en texto plano a través de la directiva "ForceType".
En cuarto lugar, empleo un archivo de autenticación DAV llamado "dav-auth-claves" creado con la herramienta "htpasswd".
Luego de estos cambios, pude verificar que la descarga de los archivos a través de "cadaver" empleando el comando "get" efectivamente venían con el código PHP completo.
Espero sea de utilidad!
José Gregorio.
Fuentes consultadas:
1. http://httpd.apache.org/docs/2.0/mod/mod_dav.html#complex
No hay comentarios:
Publicar un comentario