Подтвердить что ты не робот

Проблема очистки кеша Symfony 2

Недавно мой сайт Symfony 2 давал мне проблемы при попытке очистить кеш. Я набираю следующую команду в терминале:

php app/console cache:clear --env=dev

И получите следующую ошибку:

[ErrorException]                                                                                                                                                                                                                                   
 Warning: rename(/var/www/corpsite/corpsite/app/cache/dev,/var/www/corpsite/corpsite/app/cache/dev_old): Directory not empty in /var/www/corpsite/corpsite/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php line 74  

Итак, я меняю разрешения на этот файл на 777 и повторно запускаю команду clear cache, которая дает мне эту ошибку:

  [ErrorException]                                                                                                                                                                                                                         
  Warning: unlink(/var/www/corpsite/corpsite/app/cache/dev_old/twig/6b/e9/4491e41b895786689b86f32f446f.php): Permission denied in /var/www/corpsite/corpsite/vendor/symfony/src/Symfony/Component/HttpKernel/Util/Filesystem.php line 100  

Я могу обойти проблему, удалив папку "dev_old", но я хочу решить проблему, которая вызывает проблему.

P.S - Я знаю, что сайт работает в режиме dev. Сайт был жив в течение 10 месяцев, и это никогда не было проблемой раньше.

Любая помощь приветствуется!

4b9b3361

Ответ 1

Вам необходимо получить права доступа к папкам с кешем и журналами. Для этого вы можете следовать приведенным здесь указаниям: http://symfony.com/doc/current/book/installation.html#configuration-and-setup

Существует несколько способов, в зависимости от вашей ОС (заменить www-данные вашим пользователем apache):

Если он поддерживает chmod + a:

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

$ sudo chmod +a "www-data 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

Иначе, если он поддерживает setfacl (см. https://help.ubuntu.com/community/FilePermissionsACLs):

$ sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs
$ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

Else, поместите эти строки в начало приложения/консоли, web/app.php и web/app_dev.php(не рекомендуется):

umask(0002); // This will let the permissions be 0775

// or

umask(0000); // This will let the permissions be 0777

Ответ 2

в папках Symfony3 с кешем, перенесенных с app на var, поэтому команда будет:

$ rm -rf var/cache/*
$ rm -rf var/logs/*
$ sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" var/cache var/logs
$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" var/cache var/logs

Ответ 3

Вам необходимо получить права доступа к папкам с кешем и журналами. Для этого вы можете следовать приведенным здесь указаниям: