Intereting Posts

RuntimeException: невозможно создать каталог кэша (/ var / www / sonata / app / cache / dev)

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

rm -rf app/cache app/log 

для удаления cache.then я также создаю директора, используя команду

 mkdir app/cache app/log 

то у меня возникла новая проблема

 Runtime Exception : Unable to create the cache directory (/var/www/sonata/app/cache/dev). Please help . 

Это похоже на проблему с разрешением файла / каталога. Каталог должен быть доступен для записи веб-сервером. После создания каталога вы должны настроить разрешения с помощью

$ chown -R www-data:www-data app/cache

а также

$ chown -R www-data:www-data app/log

в командной строке.

Это работает только в Linux-системах. Пользователь и группа зависят от вашего дистрибутива. На Debian и Ubuntu это должны быть www-данные, на CentOS это афаик апач.

Другим решением было бы не удалять целые папки, а только их содержимое через

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

Но будьте осторожны с этой командой.

И для centos:

 chown -R apache:apache app/cache 

если вы приедете сюда для помощи Symfony, вам, возможно, придется это сделать, если вы удалите всю папку приложений / журналов

 chown -R apache:apache app/logs 

Изменение CHMOD может помочь, но в случае, если кэш вас раздражает во время всплытия, вы можете просто отключить его. Перейдите в свой конфигурационный файл приложения (расположенный в ../app/config/config.yml из корневого каталога). Перейдите к настройкам конфигурации твинов (под плиткой 🙂 и измените значение кеша (которое должно указывать на каталог кэша) на false следующим образом:

 twig: cache: false 

Если вы не видите записи конфигурации кэша, просто добавьте строку выше.

Я решил изменить пользователь и группу папок var/cache и var/logs , а затем очистил кеш:

 sudo chown -R www-data:www-data var/logs sudo chown -R www-data:www-data var/cache sudo rm -rf /var/logs/* /var/cache/* 

Это решение верное: https://stackoverflow.com/a/20128013/2400373

Но необходимо изменить 2 команды в Symfony3 : сначала вы должны Symfony3 внутри папки проекта:

 $ sudo chown -R www-data:www-data var/cache $ sudo chown -R www-data:www-data var/logs 

После удаления кеша:

 $ sudo rm -rf var/cache/* $ sudo rm -rf var/logs/* 

С уважением

Скорее всего, вы пытаетесь создать файл под apache / nginx. По умолчанию apache или nginx имеет значение umask, равное 0022.

От: http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Объяснить режим октальной umask 022 и 002

Как я сказал ранее, если настройки по умолчанию не изменены, файлы создаются с режимом доступа 666 и каталогами с 777. В этом примере:

По умолчанию umask 002 используется для обычного пользователя. С этой маской разрешения по умолчанию для каталога – 775, а разрешения для файлов по умолчанию – 664. Значение по умолчанию для пользователя root – это результат 022, а разрешения по умолчанию – 755, а разрешения по умолчанию – 644. Для каталогов базовые разрешения: (rwxrwxrwx) 0777 и для файлов – 0666 (rw-rw-rw).

Вам нужно будет вручную установить umask на 0002 и вернуть его обратно к предыдущей настройке, прежде чем создавать каталоги.