symfony2 : impossible d'écrire répertoire de cache
J'ai dû utiliser le
app/console cache:clear command
pour résoudre un problème lors de la génération d'une entité.
Je suis maintenant incapable de charger ma page d'accueil sur :
http://localhost/projet_etienne/web/app_dev.php
il dit :
RuntimeException: Échec de cache en écriture du fichier "/var/www/projet_etienne/app/cache/dev/classes.php".
Je ne comprends pas bien de cette cache d'affaires!
Dans mon app/cache
dossier, j'ai reçu un dev
, un dev_new
, un dev_old
dossier. Est-ce normal?
la
app/console cache:clear
génère par la voie d'un :
[ErrorException]
Avertissement: renommer(/var/www/projet_etienne/app/cache/dev,/var/www/projet_etien
ne/app/cache/dev_old): le Répertoire n'est pas vide dans /var/www/projet_etienne/vendo
r/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Commande/CacheClearComm
et.php la ligne 77
s'il vous plaît aider!
- Vérifier le dossier de cache persmisions. Il doit être accessible en écriture. Vous pouvez le faire: chmod 777 -R app/cache/
- merci beaucoup ! c'était simplement cela ...mais il n'est pas toujours facile d'identifier la source du problème lorsqu'ils ne sont pas très familiers avec symfony, ni linux
- chmod 777 est une mauvaise idée. Donc, beaucoup de personnes utilisant linux juste gran 777 autorisations sur autre chose qu'un processus spécifique doit écrire plutôt que de définir des autorisations nécessaires pour que l'utilisateur spécifique. Pour ce fichier, exécutez
ps aux | grep apache
pour voir ce que l'utilisateur exécute le processus apache, puis accorder à la propriété viachown -R apache-user cache
suffirait de mieux que de concéder rwx pour tous les utilisateurs. Assurez-vous dechmod u=rw cache
par la suite pour prévenir l'exécution en tant que le processus n'a pas besoin de ces autorisations.
Vous devez vous connecter pour publier un commentaire.
Pour une BONNE et solution définitive voir le
Setting up Permissions
section dansInstalling and Configuring Symfony
section :http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup
source :
Échec de cache en écriture du fichier "/var/www/myapp/app/cache/dev/classes.php" lors de l'effacement du cache
apt-get install acl
à utilisersetfacl
var/logs
dossier a été modifié pourvar/log
.La plus probable, il signifie que le répertoire et/ou sous-répertoires ne sont pas accessible en écriture. Beaucoup oublient sur les sous-répertoires.
Symfony 2
Symfony 3 structure de répertoire
Des Ressources Supplémentaires
Les autorisations de solution par Symfony (mentionné précédemment).
Les autorisations de solution par KPN Université - comprend en outre un écran de fonte sur l'installation.
Remarque: Si vous utilisez Symfony 3 structure de répertoire, substitut
app/cache
etapp/logs
avecvar/cache
etvar/logs
.Si le dossier est déjà accessible en écriture, donc ce n'est pas le problème.
Vous pouvez aussi naviguer à
/www/projet_etienne/app/cache/
et supprimer manuellement les dossiers dedans (dev, dev_new, dev_old).Assurez-vous d'ENREGISTRER une copie de ce dossier quelque part pour mettre en arrière si cela ne résout pas le problème
Je sais que ce n'est pas la façon dont il devrait être fait, mais il a travaillé pour moi une couple de fois maintenant.
chmod -R 777 /app/cache
etc...Vous avez probablement interrompu une clearcache à mi-chemin et maintenant vous avez déjà une app/cache/dev_old.
Essayez ceci (à la racine de votre projet, en supposant que vous êtes sur un Unixy environnement comme OS X ou Linux):
rm -rf app/cache/dev*
Peut-être que vous avez oublié de modifier les autorisations de app/cache app/log
Je suis sous Ubuntu donc
Espère que cela aide..
j'ai exécuté:
et a obtenu quelque chose comme ça:
donc mon utilisateur n'ayant pas accès s'est avéré être
www-data
donc j'ai exécuté les commandes:et il a résolu les erreurs d'accès.
- Je déplacer l'ensemble du répertoire de mon installation de Windows à unix, serveur de production et j'ai eu le même message d'erreur. Pour le fixer, j'ai juste couru ces deux lignes dans unix et tout a commencé à fonctionner correctement
si la version de symfony est inférieure à 2,8
HTML:
si la version de symfony grand que ou égal à 3,0
HTML:
Il suffit d'utiliser cette acl cmd, la prochaine fois les fichiers à l'intérieur de la var sont créés, il aura de la r/w/x permission pour www-data de l'utilisateur.
Cmd explication: