Symfony - RuntimeException: Не удалось записать файл кеша

У меня возникли проблемы с получением прав. Я пытаюсь запустить его в локальной среде на моем Mac через XAMPP.

Я пробовал следующее:

Ответ 1

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

Убедитесь, что пользователь www-data заменен пользователем, которым работает ваш веб-сервер. Узнайте, какой пользователь выполняет ваш веб-сервер, выполнив команду:

ps aux | grep http

или

ps aux | grep apache

Вам также может потребоваться включить ACL. Дополнительную информацию см. В Документация по установке и см. эту страницу для получения информации об ACL.

При запуске Symfony из командной строки кешированные файлы/каталоги создаются пользователем, с которым вы вошли в систему - в вашем случае - "jess". При запуске веб-страницы в вашем браузере они создаются пользователем веб-сервера - в вашем случае пользователь "никто". У вашего пользователя нет доступа к файлам и файлам, созданным веб-сервером, и наоборот.

Изменение вашего веб-сервера для запуска как того же пользователя, что и ваш логин, не является идеальным решением, так как оно не очень безопасно, и у вас все еще будет такая же проблема, если вы разместите свой сайт на другом сервере.

Решение состоит в том, чтобы убедиться, что вы выполнили раздел "Настройка разрешений" документации по установке в http://symfony.com/doc/current/book/installation.html.

Убедитесь, что вы указали rm -rf содержимое папки, а не только кеш-приложение/консольный кеш: очистите, так как команда symfony clear cache создаст dirs/files, которые по-прежнему недоступны для записи на вашем веб-сервере.

Ответ 2

В общем, вы должны запустить свой веб-сервер от того же пользователя, что и php5-cli. И папка, в которой находится ваш проект, должна иметь все разрешения для этого пользователя.

Вы должны либо change user for project directory, либо просто chmod -R 777 app/cache и chmod -R 777 app/logs

Ответ 4

Я получил эту ошибку, и я пробовал все эти советы без успеха...

В конечном итоге я нахожу решение, дезактивируя seLinux. Для этого отредактируйте файл "/etc/selinux/config" и замените значение SELINUX на

SELINUX=disabled