Intereting Posts

Не удалось записать файл кэша «/var/www/myapp/app/cache/dev/classes.php» при очистке кеша

Я установил Symfony 2.0.7 на Ubuntu 11.10. У меня есть эта проблема:

Я изменил разрешения для каталогов cache e logs используя следующие команды:

 chmod 777 -R cache chmod 777 -R logs 

и все функции, как я ожидал.

Затем я сделал:

 app/console cache:clear 

Очистка кеша для среды dev с помощью отладки true

права доступа к кешу / dev на 755 и Symfony не могут писать в этом:

RuntimeException: Не удалось записать файл кэша «/var/www/myapp/app/cache/dev/classes.php».

в строке /var/www/myapp/app/bootstrap.php.cache 1079 в ClassCollectionLoader :: writeCacheFile () в /var/www/myapp/app/bootstrap.php.cache строке 1017 в ClassCollectionLoader :: load () в / строка var / www / myapp / app / bootstrap.php.cache 682 в Kernel-> loadClassCache () в строке /var/www/myapp/web/app_dev.php 23

Как я могу решить эту очевидную ошибку в Symfony 2?

См. Раздел « Настройка разрешений» в разделе « Конфигурация и настройка ». Используйте подход ACL с помощью setfacl .

например

 sudo setfacl -R -mu:apache:rwX -mu:`whoami`:rwX app/cache app/logs sudo setfacl -dR -mu:apache:rwX -mu:`whoami`:rwX app/cache app/logs 

(где apache – ваш пользователь HTTPD)

Ну, я использую setfacl чтобы избежать этих проблем, но у меня все еще возникают проблемы. Я работаю над стандартным каталогом пользователей, поэтому это не работает для меня:

 APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\ -f1` sudo setfacl -R -mu:$APACHEUSER:rwX -mu:`whoami`:rwX app/cache app/logs sudo setfacl -dR -mu:$APACHEUSER:rwX -mu:`whoami`:rwX app/cache app/logs 

Если вы тоже это сделаете: (в качестве привилегированного пользователя, если необходимо, конечно)

 sudo rm -rf app/cache app/logs 

Затем, когда пользователь NORMAL создаст оба каталога, а затем примените приведенные ниже команды как НОРМАЛЬНЫЙ пользователь (без 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 -mu:$APACHEUSER:rwX -mu:`whoami`:rwX app/cache app/logs setfacl -dR -mu:$APACHEUSER:rwX -mu:`whoami`:rwX app/cache app/logs 

Примечание: помните, что между -d\ и -f1 есть два пробела

Удачи!

В моем случае я просто выполняю роль пользователя root:

 sudo -u apache app/console ca:cl 

apache – это будет зависеть от владельца вашего веб-каталога. по умолчанию используется apache, предполагая, что вы используете apache для своего веб-сервера.

Посмотрев ваши сообщения, я добрался до этой страницы

http://symfony.com/doc/current/setup/file_permissions.html

Тогда я сделал это:

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 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 -mu: "$ HTTPDUSER": rwX -mu: whoami : rwX var

sudo setfacl -dR -mu: "$ HTTPDUSER": rwX -mu: whoami : rwX var

И это решило мою проблему