J'ai installé Symfony 2.0.7 sur Ubuntu 11.10. J'ai ce problème:
J'ai modifié les autorisations des répertoires cache
e logs
à l'aide des commandes suivantes:
chmod 777 -R cache
chmod 777 -R logs
et tout fonctionne comme je m'y attendais.
Puis j'ai fait:
app/console cache:clear
Effacement du cache pour l'environnement dev avec debug true
les permissions de cache/dev passent à 755 et symfony ne peut écrire dans ceci:
RuntimeException: échec de l'écriture du fichier de cache "/var/www/myapp/app/cache/dev/classes.php".
dans /var/www/myapp/app/bootstrap.php.cache, ligne 1079 at ClassCollectionLoader :: writeCacheFile () dans la ligne /17/www/myapp/app/bootstrap.php.cache 1017 at ClassCollectionLoader :: load () dans /var/www/myapp/app/bootstrap.php.cache, ligne 682 at Kernel-> loadClassCache () dans la ligne /var/www/myapp/web/app_dev.php
Comment puis-je résoudre ce bogue apparent dans Symfony 2?
Voir la note Configuration des autorisations dans la section Configuration et installation . Utilisez l'approche ACL avec setfacl
.
par exemple.
Sudo setfacl -R -m u:Apache:rwX -m u:`whoami`:rwX app/cache app/logs
Sudo setfacl -dR -m u:Apache:rwX -m u:`whoami`:rwX app/cache app/logs
(où Apache
est votre utilisateur HTTPD)
Eh bien, j'utilise setfacl
pour éviter ces problèmes, mais j'ai toujours des problèmes . Je travaille sur un répertoire utilisateur standard donc cela ne fonctionne pas pour moi:
APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\ -f1`
Sudo setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
Sudo setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
Si vous aussi, faites ceci: (en tant qu'utilisateur privilégié si nécessaire bien sûr)
Sudo rm -rf app/cache app/logs
Ensuite, en tant qu’utilisateur NORMAL, créez les deux répertoires puis appliquez les commandes ci-dessous en tant qu’utilisateur NORMAL (sans Sudo):
exit (from root if necessary)
mkdir app/cache app/logs
APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\ -f1`
setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
Remarque: rappelez-vous qu'il y a deux espaces entre -d\
et -f1
Bonne chance!
Dans mon cas, je fais juste en tant qu'utilisateur root:
Sudo -u Apache app/console ca:cl
Apache - cela dépendra du propriétaire de votre répertoire Web. Par défaut, Apache suppose que vous utilisez Apache pour votre serveur Web.
En regardant vos messages, je suis arrivé à cette page
http://symfony.com/doc/current/setup/file_permissions.html
Puis j'ai fait ceci:
HTTPDUSER = ps axo user,comm | 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 var
Sudo setfacl -dR -m u: "$ HTTPDUSER": rwX -m u: whoami
: rwX var
Et ça a résolu mon problème