Corrección de permisos recursivamente mediante PHP
A la hora de realizar una mudanza de servidor es posible encontrarse con problemas de permisos que impidan descargar todo el contenido de una web mediante FTP. Por lo general estos problemas son ocasionados cuando hay un administrador de ficheros integrado en la web y el servidor está configurado con PHP estándar, sin el módulo suPHP. En estos casos, todo fichero generado mediante un script tendrá como dueño apache
, y con los permisos 600
, por lo que no podrá ser descargado mediante FTP.
Para solucionarlo, utilizamos el siguiente fichero PHP:
<?php function fsmodify($obj) { $chunks = explode('/', $obj); chmod($obj, is_dir($obj) ? 0755 : 0644); chown($obj, $chunks[2]); chgrp($obj, $chunks[2]); } function fsmodifyr($dir) { if($objs = glob($dir."/*")) { foreach($objs as $obj) { fsmodify($obj); if(is_dir($obj)) fsmodifyr($obj); } } return fsmodify($dir); } fsmodifyr('web'); ?>
Este fichero modificará recursivamente los permisos de todos los ficheros y carpetas dentro de web
, de forma que serán descargables por cualquier usuario, incluido el que tenga acceso FTP.
Gracias a Felipe Alcacibar por su solución en Stack Overflow.
Deja un comentario