web-dev-qa-db-fra.com

RuntimeException: impossible de créer le répertoire de cache (/ var/www/sonata/app/cache/dev)

j'ai installé le pack d'administration sonata . Après l'installation, je rafraîchit ma page, le problème de cache se pose 

rm -rf app/cache app/log

pour supprimer le cache.Ensuite, je crée également le directeur à l'aide de la commande 

mkdir app/cache app/log

alors j'ai eu le nouveau problème comme celui-ci 

Runtime Exception : Unable to create the cache directory (/var/www/sonata/app/cache/dev). Please help .
26
user2779489

Cela ressemble à un problème d'autorisation de fichier/répertoire. Le répertoire doit être accessible en écriture sur le serveur Web. Après avoir créé le répertoire, vous devez ajuster les autorisations avec 

$ chown -R www-data:www-data app/cache

et 

$ chown -R www-data:www-data app/log

sur la ligne de commande.

Cela ne fonctionne que sur les systèmes Linux. L'utilisateur et le groupe dépendent de votre distribution. Sur Debian et Ubuntu, cela devrait être www-data, sur CentOS c'est toujours Apache.

Une autre solution serait de ne pas supprimer tous les dossiers, mais seulement leur contenu via

$ rm -rf app/log/* app/cache/*

Mais s'il vous plaît soyez prudent avec cette commande.

46
l-x

Cette solution est correcte: https://stackoverflow.com/a/20128013/2400373

Mais il est nécessaire de changer les 2 commandes dans Symfony3: Tout d’abord, vous devez vous trouver dans le dossier du projet:

$ Sudo chown -R www-data:www-data var/cache
$ Sudo chown -R www-data:www-data var/logs

Après avoir supprimé le cache:

$ Sudo rm -rf var/cache/*
$ Sudo rm -rf var/logs/* 

Cordialement

5
juanitourquiza

Et pour les centos:

chown -R Apache:apache app/cache

si vous venez ici pour l'aide de Symfony, vous devrez peut-être le faire également si vous supprimez tout le dossier app/logs

chown -R Apache:apache app/logs
4
sjt003

Je l'ai résolu en changeant d'utilisateur et de groupe de dossiers var/cache et var/logs, puis j'ai nettoyé le cache:

Sudo chown -R www-data:www-data var/logs
Sudo chown -R www-data:www-data var/cache

Sudo rm -rf var/logs/* var/cache/*
3
Jirson Tavera

Changer le CHMOD peut aider, mais au cas où le cache vous importunerait au cours du développement, vous pouvez simplement le désactiver . Accédez au fichier de configuration de votre application (situé dans ../app/config/config.yml à partir du répertoire racine). Faites défiler jusqu'aux paramètres de configuration de twig (sous twig :) et modifiez la valeur de cache (qui doit pointer vers le répertoire de cache) sur false comme suit:

twig:
    cache:  false

Si vous ne voyez aucune entrée de configuration de cache, ajoutez simplement la ligne ci-dessus.

2
user254883

J'ai rencontré un problème similaire lorsque j'utilisais PHP symfony en tant qu'image d'erreur . Je l'ai trouvé après l'exécution de la commande

php bin/console cache:clear

Je l'ai résolu en supprimant tout ce qui se trouvait dans le dossier / app/var/cache

 enter image description here

1

C'est principalement le problème de la permission.

Je l'ai résolu sur MAC en utilisant la commande: $ Sudo chmod -R 777 <path/to/cache/directory>

Vous pourriez essayer: $ Sudo chmod -R 777 /var/www/sonata/app/cache

0
Pratik Patel

Sur un mac ordinateur, ce sera:

$ Sudo chown -R _www:_www var/cache
$ Sudo chown -R _www:_www var/logs

Si rien de ce qui précède ne vous convient , appelez un "phpinfo ()" sur votre fichier php et recherchez la valeur "Utilisateur/Groupe". C'est le groupe d'utilisateurs à qui donner l'autorisation.

0
Tiago Gouvêa

Ce qui se passe probablement, c’est que vous essayez de créer le fichier sous Apache/nginx. Par défaut, umache est défini sur 0022 pour Apache ou nginx. 

De: http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Expliquez le mode umask octal 022 et 002

Comme je l'ai dit précédemment, si les paramètres par défaut ne sont pas modifiés, les fichiers sont créés avec le mode d'accès 666 et les répertoires avec 777. Dans cet exemple:

Le umask 002 par défaut utilisé pour l'utilisateur normal. Avec ce masque, les autorisations de répertoire par défaut sont de 775 et les autorisations de fichier par défaut sont de 664 . Le umask par défaut pour l'utilisateur root est 022 et les autorisations de répertoire par défaut sont 755 et les autorisations de fichier par défaut sont 644 . Les autorisations de base pour les répertoires sont (rwxrwxrwx) 0777 et pour les fichiers, elles sont 0666 (rw-rw-rw).

Avant de pouvoir créer les répertoires, vous devez définir manuellement umask sur 0002 et le réinitialiser.

0
dminer