Как запустить приложение Symfony в системе, доступной только для чтения, где невозможно записать переменную var / cache? - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь настроить приложение Symfony 5 для запуска в системе только для чтения.

Но несмотря на то, что оно настроено на использование Memcached вместо файловой системы для кэшируемых данных, которые обычно записываются в каталоге приложения var/cache ( в соответствии с документацией все, что мне нужно сделать, это изменить адаптер кэша для пула кэша system и для пула кэша app, если необходимо), я обнаружите, что Symfony продолжает писать в var/cache.

Что мне не хватает? Как развернуть приложение в системе только для чтения?

1 Ответ

1 голос
/ 14 февраля 2020

Если вы настраиваете систему , а не для использования кэша на основе файловой системы, вам нужно только запустить php bin/console cache:warmup при развертывании и затем развернуть весь сгенерированный код (включая содержимое var/cache) в среда выполнения.

С здесь :

В среде prod (т. е. когда APP_ENV является prod, а APP_DEBUG равен 0), до тех пор, пока вы запускаете php bin / console cache: прогрев, файлы кэша не нужно записывать во время выполнения. Единственное исключение - использование кеша на основе файловой системы, такого как кэш результатов запроса Doctrine или кэш Symfony с настроенным поставщиком файловой системы.

Вам также потребуется убедитесь, что вы не регистрируетесь на диск.

В настоящее время, поскольку Symfony 4, var/cache в основном предназначены для хранения долгосрочных артефактов, таких как файлы скомпилированного контейнера, скомпилированные переводы и / или Doctrine прокси , Не для временных файлов кэша.

Следуя этим рекомендациям, хорошо сконфигурированное приложение должно иметь возможность развертываться в средах только для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...