Impostare i permessi
Un problema comune è che le cartelle app/cache e app/logs devono essere scrivibili sia dal server web che dall’utente della linea di comando. Su sistemi UNIX, se l’utente del server web è diverso da quello della linea di comando, si possono eseguire i seguenti comandi una sola volta sul proprio progetto, per assicurarsi che i permessi siano impostati correttamente. Cambiare www-data con l’utente del server web e tuonome con l’utente della linea di comando:
1. Usare ACL su un sistema che supporta chmod +a
Molti sistemi consento di usare il comando chmod +a. Provare prima questo e, in caso di errore, provare il metodo successivo:
rm -rf app/cache/*
rm -rf app/logs/*
sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit " app/cache app/logs
sudo chmod +a "tuonome allow delete,write,append,file_inherit,directory_inherit " app/cache app/logs
2. Usare ACL su un sistema che non supporta chmod +a
Alcuni sistemi non supportano chmod +a, ma supportano un altro programma chiamato setfacl. Si potrebbe aver bisogno di abilitare il supporto ACL sulla propria partizione e installare setfacl prima di usarlo (come nel caso di Ubuntu), in questo modo:
sudo setfacl -R -m u:www-data:rwx -m u:tuonome:rwx app/cache app/logs
sudo setfacl -dR -m u:www-data:rwx -m u:tuonome:rwx app/cache app/logs
3. Senza usare ACL
Se non è possibile modificare l’ACL delle cartelle, occorrerà modificare l’umask in modo che le cartelle cache e log siano scrivibili dal gruppo o da tutti (a seconda che gli utenti di server web e linea di comando siano o meno nello stesso gruppo). Per poterlo fare, inserire la riga seguente all’inizio dei file app/console, web/app.php e web/app_dev.php:
umask(0002); // Imposta i permessi a 0775
// oppure
umask(0000); // Imposta i permessi a 0777
Si noti che l’uso di ACL è raccomandato quando si ha accesso al server, perché la modifica di umask non è thread-safe.