2017-02-09 7 views
0

Я запускаю экземпляры Symfony 3. * в Homestead с PHP 7.1 и недавно переключил каталог кеша и журналов удаленно из моей основной папки, так как синхронизация NFS сходила с ума и значительно уменьшило производительность всей установки.Использование Redis для Symfony/var/cache и/var/logs

Мне было интересно, могу ли я полностью отправить ведение журнала и кеширование, которое обычно отправляется в ./var/ в Redis каким-то образом через конфигурацию или обходной путь?

ответ

2

Вы можете изменить регистрацию, чтобы отключить ее, или вниз, или выбрать, чтобы не записывать ее в файл, а вместо этого отправлять ее в Redis или из других источников. Существует много дополнительных целей, которые Монолог может использовать, как правило, с помощью библиотеки поддержки и конфигурации.

Кэшированные файлы не предназначены для написания в других местах. Поскольку они записываются на диск, их можно кэшировать с помощью OpCache.

Это не значит, что var/* должен быть записан на реальный диск. Если у вас есть разделяемая память, которая будет использоваться как ram-диск (также известный как tmpfs). Приложение может быть довольно легко изменены, чтобы использовать это - для кэш-памяти и/или лог-файлы:

class AppKernel extends Kernel 
{ 
    // ... 

    public function getCacheDir() 
    { 
     if (in_array($this->environment, array('dev', 'test'))) { 
      return '/dev/shm/appname/cache/' . $this->environment; 
     } 
     return parent::getCacheDir(); 
    } 

    public function getLogDir() 
    { 
     if (in_array($this->environment, array('dev', 'test'))) { 
      return '/dev/shm/appname/logs'; 
     } 
     return parent::getLogDir(); 
    } 
} 

Источник: http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html через https://stackoverflow.com/a/10784563