Come cambiare i permessi a file e cartelle in modo ricorsivo con php

Capita a noi webmaster di avere problemi di permessi con file e cartelle nei nostri server web… Oggi, per esempio, mentre facevo dei test per uno script di copia ricorsiva, mi son ritrovato a far la copia ricorsiva in loop, e a causa di un file con permesso in sola lettura… beh, praticamente non riuscivo più a rimuovere questa cartella con percorso infinito.

Così ho dovuto cercare/creare un modo facile e veloce per ripristinare i permessi di quei file, e il modo più semplice – ovviamente – è stato il .php

<?php

$dirpath = '/***/***/public_html/directoryname';
$dirperm = 0755; // Directory Permission
$fileperm = 0644; // File Permission

// fix root directory
chmod ($dirpath, $dirperm);
// then, fix child elements
$glob = glob($dirpath."/*");
foreach($glob as $ch)
{
  // If is directory, else...
  $ch = (is_dir($ch)) ? chmod ($ch, $dirperm) : chmod ($ch, $fileperm);
}

?>

Son partito da ricerche online… Avevo trovato esempi con DirectoryIterator e simili, ma poi ho scelto glob, l’ho estratto dalla funzione, ho aggiunto le variabili, usato l’operatore ternario… Insomma, l’ho rifatto un po’

In pratica basta impostare la cartella di lavoro, scegliere i permessi desiderati, e da lì in giù, in modo ricorsivo, tutti i nostri file e le nostre cartelle prenderanno i nuovi permessi 😉

 

Facile e veloce – e non ci sarà più bisogno di stressare l’hosting con inutili ticket 😛

Spero possa tornarvi utile!

Cita

PS: purtroppo, nonostante le prove fatte, non riesco a farlo funzionare su AlterVista!

Nessun messaggio di errore, ma i permessi non cambiano.

Credo sia bloccato il chmod lato server, quindi posso farci niente ❓

Nessun problema su hosting tradizionale (provato sul mio, hosting linux con Apache/Php 5.6/Cpanel).




Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.