Permission répertoires cache et log Symfony

Posted on Posted in Symfony

http://symfony.com/fr/doc/current/book/installation.html

Définir les permissions

Un des problèmes les plus fréquents est que les répertoires app/cache et app/logs ne sont pas accessibles en écriture par le serveur web et par l’utilisateur de ligne de commande. Sur un système UNIX, si votre utilisateur de ligne de commande est différent de celui du serveur web, vous pouvez lancer les commandes suivantes une fois dans votre projet pour vous assurer que les permissions sont correctement définies.

Notez que tous les serveurs web n’utilisent pas l’utilisateur www-data comme dans les exemples ci-dessous. Veuillez vérifier quel utilisateur votre serveur web utilise et utilisez-le à la place de www-data.

Sur un système UNIX, vous pouvez le faire grâce à une des commandes suivantes :

1 $ ps aux | grep httpd

ou

1 $ ps aux | grep apache
  1. Utiliser l’ACL sur un système qui supporte chmod +a

Beaucoup de systèmes autorisent l’usage de la commande chmod +a. Essayez d’abord la première méthode, et si vous avez une erreur, essayez la seconde. Assurez-vous de bien remplacer www-data par l’utilisateur de votre serveur web dans la première commande chmod:

1

2

3

4

5

6

$ rm -rf app/cache/*

$ rm -rf app/logs/*

 

$ HTTPDUSER=`ps aux | grep -E ‘[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx’ | grep -v root | head -1 | cut -d\  -f1`

$ sudo chmod +a « $HTTPDUSER allow delete,write,append,file_inherit,directory_inherit » app/cache app/logs

$ sudo chmod +a « `whoami` allow delete,write,append,file_inherit,directory_inherit » app/cache app/logs

  1. Utiliser l’ACL sur un système qui ne supporte pas chmod +a

Certains systèmes ne supportent pas la commande chmod +a, mais supportent un autre utilitaire appelé setfacl. Vous devrez sans doute activer le support ACL sur votre partition et installer setfacl avant de pouvoir l’utiliser (comme c’est le cas avec Ubuntu), de cette façon :

1

2

3

$ HTTPDUSER=`ps aux | grep -E ‘[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx’ | grep -v root | head -1 | cut -d\  -f1`

$ sudo setfacl -R -m u: »$HTTPDUSER »:rwX -m u:`whoami`:rwX app/cache app/logs

$ sudo setfacl -dR -m u: »$HTTPDUSER »:rwX -m u:`whoami`:rwX app/cache app/logs

  1. Sans utiliser l’ACL

Si vous n’avez pas les droits de changer les accès aux répertoires, vous aurez besoin de changer le umask pour que les répertoires cache et log soit accessibles en écriture au groupe ou aux autres (cela dépend si l’utilisateur serveur web et l’utilisateur de ligne de commande sont dans le même groupe ou non). Pour faire ceci, ajoutez la ligne suivante au début des fichiers app/console, web/app.php et web/app_dev.php:

1

2

3

4

5

umask(0002); // Définit une permission 0775

 

// ou

 

umask(0000); // Définit une permission 0777

Notez qu’utiliser l’ACL est recommandé si vous y avez accès sur votre serveur car changer le umask n’est pas sûr.

9 thoughts on “Permission répertoires cache et log Symfony

  1. Ping : Generic cialis
  2. Ping : Generic cialis
  3. Ping : Cialis prices
  4. Ping : Cialis online

Comments are closed.