Я установил 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
И это решило мою проблему