Исключение Symfony prod.log / var / cache / prod / annotations недоступно для записи - PullRequest
0 голосов
/ 11 мая 2018

У меня есть сеть, основанная на Symfony 3. Для развертывания у меня есть собственный скрипт bash.В этом скрипте такие подпрограммы, как git pull, clear cache ...

На сервере: Debian GNU / Linux 9 (stretch)

Но после развертывания я вижу исключение в prod.log:

[2018-05-11 16:55:36] request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: «Каталог» /var/www/domain.com/var/cache/prod/annotations«не для записи».в /var/www/domain.com/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php строка 92 {"исключение": "[объект] (исключение InvalidArgumentException (код: 0): каталог \"/var/www/domain.com/var/cache/prod/annotations \ "недоступно для записи. на /var/www/domain.com/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php:92) "} []

Но проблема в том, что до и после очистки кэша у меня есть команда chmod -R 777 /var, а после развертывания, если я смотрю в / var / cache / prod / annotations, я вижу новые файлы свремя изменения равно времени, когда я запускаю очистить кеш (через скрипт sh).

У кого-нибудь есть идеи?Куда смотреть, что ччек?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Эта ошибка возникает, если ваша оболочка сначала записывает в app/cache, а затем вы открываете свой веб-сайт, где в эту папку должны быть записаны и другие части.

Простое решение: добавьте своего пользователя оболочки в группу, в которую вы входите.веб-сервер использует, вероятно, от www-data до sudo usermod -a -G www-data userName

0 голосов
/ 11 мая 2018

Проблема в разрешениях, для исправления используйте это:

setfacl -R -m u:www-data:rX folderProject 

setfacl -R -m u:www-data:rwX folderProject/var/cache folderProject/var/logs folderProject/var/sessions folderProject/app/sessions  

setfacl -dR -m u:www-data:rwX folderProject/var/cache folderProject/var/logs folderProject/var/sessions folderProject/app/sessions  

Замените folderProject именем вашего проекта.Если вы используете Ubuntu с Apache, эта команда решит проблему, если вы используете другой GNU / Linux, измените пользовательские www-данные на свой

...