Ускоряем XenForo: включаем кэширование

Владимир Миронов

Проверенные
Сообщения
1,001
Реакции
769
Баллы
8,295
Ускоряем XenForo: включаем кэширование
По умолчанию кэширование в XenForo отключено. Для его включения добавляем в /library/config.php следующее:

Код:
$config['cache']['enabled'] = true;
$config['cache']['cacheSessions'] = true;
$config['cache']['frontend'] = 'Core';
$config['cache']['frontendOptions'] = array(
'caching' => true,
'automatic_serialization' => true,
'lifetime' => 3600,
'cache_id_prefix' => 'xf_'
);

Дальше нам нужно выбрать, какой механизм кэширования использовать. Предварительно уточните у своего хостера какой режим он поддерживает. Добавляем в config.php нужную нам конфигурацию:

Memcached:
Есть два вида расширений для работы с демоном memcached - это php-memcache и php-memcached.
2017-07-20_10h39m37s_043_-png.72568

Первый (хоть и древний, но пока еще в tru-репозиториях есть) подключается как:
PHP:
$config['cache']['backend'] = 'Memcached';
$config['cache']['backendOptions'] = array(
    'backendOptions' => array(
        'compression' => false,
        'servers' => array(
            array(
                // your memcached server ip /address
                'host' => 'localhost',

                // memcached port
                'port' => 11211,
            )
        )
    )
);
Второй подключается как:
PHP:
// Memcached engine
$config['cache']['backend'] = 'Libmemcached';
$config['cache']['backendOptions'] = array(
    'compression' => false,
    'servers' => array(
        array(
            'host' => '127.0.0.1',
            'port' => 11211,
        )
    )
);

APC:
PHP:
 $config['cache']['backend'] = 'Apc';
$config['cache']['backendOptions'] = array();

XCache:
PHP:
$config['cache']['backend'] = 'Xcache';
$config['cache']['backendOptions'] = array();

Файловая система:
PHP:
$config['cache']['backend'] = 'File';
$config['cache']['backendOptions'] = array('cache_dir'  => 'D:\xampp\xampp\htdocs\xf\upload\library\cache');

Для кеширования файлами создайте папку и установите права на неё 777 и указываем путь к папке вместо D:\xampp\xampp\htdocs\xf\upload\library\cache
 
Это имеет смысл включать для высоко посещаемых и очень больших форумов, остальным можно особо и не париться этим делом !:)
 
т смысл включать для высоко посещаемых и очень больших форумов, остальным можно особо и не париться этим делом !:)
Конечно правильно,но если у человека который посещает ваш форум с плохим интернетом очень хорошо понадобится!
 
Подправил первый пост (основной код для включения кеширования) и дополнил параметрами для XCache.

з.ы.
Конечно правильно,но если у человека который посещает ваш форум с плохим интернетом очень хорошо понадобится!
Кеширование и качество интернет-канала пользователя не имеют прямой связи.
 
Кэширование хорошо включить если форум действительно большой или что бы улушить скорость загрузки и разгрузить http сервер.
Проблемы могут возникнуть если форум быстро обновляется. Изменения не будут видны до тех пор пока кэш не будет обновлён.
 
Что за вздор :)
Не надо путать php-акселераторы с кэшем браузера.
Не надо меня учить разнице между PHP кэшированием и кэшем браузера. При PHP/Apache кэшировании создаются копии всех данных и при запросе к ним выдаётся кэш, а не актуальная страница.
Таким образом сервер сохраняет память при исполнении PHP команд и обработки HTTP трафика.
 
Не надо меня учить разнице между PHP кэшированием и кэшем браузера. При PHP/Apache кэшировании создаются копии всех данных и при запросе к ним выдаётся кэш, а не актуальная страница.
Таким образом сервер сохраняет память при исполнении PHP команд и обработки HTTP трафика.
Учить не собирался, однако Вы говорите ерунду.
Вам стоит освежить знания о том, как же все-таки работают php-акселераторы на самом деле, дабы не вводить никого в заблуждение и себя в том числе. :wink:
 
Википедия.
Как выглядит обработка сценария на PHP обычным интерпретатором:

  1. Чтение файла
  2. Генерация байткода
  3. Выполнение кода
  4. Выдача результата
При этом процесс генерации байткода выполняется каждый раз и отнимает большую часть времени обработки сценария.

Для обхода этого узкого места были разработаны акселераторы PHP — модули, кэширующие скомпилированный байт-код в памяти и/или на диске и в разы увеличивающие производительность PHP.

Если кэш не соответствует актуальному коду как будут показываться изменения?
Я знаю это потому сам столкнулся с проблемой неправильного кэширования, изменения появились только через 7 дней после первого кэширования. Разве я ошибаюсь?
 
Ок, пример.
На этом форуме в данный момент работает кэширование.
Почему же все изменения видны сразу? Просветите меня безграмотного. Что я делаю не так? :)
Я знаю это потому сам столкнулся с проблемой неправильного кэширования
Не показатель истинности данных знаний.
 
Memcached и PHP кэширование тупо сохраняет дампы. Для того что дампы обновлялись нужны автоматизированные системы обновления кэша, такие как специальные скрипты или Cron.
Сейчас проверю на своём сайте.
 
Использую у себя Xcache. Ощутимо нагрузка падает. Но использую почти с дефолтными настройками, только память подкрутил. А есть ли у кого наработки по обновлению и замене кэш-данных?
А именно
xcache.ttl = 0
xcache.gc_interval = 0

xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
 
Memcached и PHP кэширование тупо сохраняет дампы. Для того что дампы обновлялись нужны автоматизированные системы обновления кэша, такие как специальные скрипты или Cron.
Сейчас проверю на своём сайте.
Hope, и этот человек у тебя в модераторах?! Писать такой феерический бред и быть в управленцах? Гони его ссаной метлой.
Какие к херам дампы?! тупо?! Всё настраивается.
 
Memcached и PHP кэширование тупо сохраняет дампы. Для того что дампы обновлялись нужны автоматизированные системы обновления кэша, такие как специальные скрипты или Cron.

хм а как вы думаете зачем эта строчка в конфиге?


все на автомате без скриптов и крона.
 
хм а как вы думаете зачем эта строчка в конфиге?
Это время жизни для ксена. А что более старшие данные удалятся из кэша опкода и данных этого не будет. Они там так и залягут мёртвым грузом, пока не удалим их интервалом очистки кэша в настройках программы кэширования...
 
Это время жизни для ксена. А что более старшие данные удалятся из кэша опкода и данных этого не будет. Они там так и залягут мёртвым грузом, пока не удалим их интервалом очистки кэша в настройках программы кэширования...
разговор был о том что ксен не будет обновлять кеш, а не о том как правильно настроить саму программу кеширования чтоб она за собой очищала все лишнее... Тот кто это не умеет делать пользуется как правило хостингом и об этом там уже позаботился хостер, а кто умеет настраивать тот настроит сам.. это не проблема движка форума..
 
Да, двиг не к этому. Но тема по кэшированию интересна и со стороны кэшера. Ведь настроек то много и в нём. И, кстати, мне например присловутый eAccelerator не нравится. XCache более неприхотлив, и на мой взгляд, стабильней...
 
Можно использовать две функции кэширования XCache и файлову ???
и как узнать путь которую мне нужно прописать ?
 
Странно... Что я не так делаю?
Добавляю код в config.php и сразу вырубается связь с БД
PHP:
$config['cache']['enabled'] = true;
$config['cache']['cacheSessions'] = true;
$config['cache']['frontend'] = 'Core';
$config['cache']['frontendOptions'] = array(
'caching' => true,
'automatic_serialization' => true,
'lifetime' => 3600,
'cache_id_prefix' => 'xf_'
);

$config['cache']['backend'] = 'Memcached';
$config['cache']['backendOptions'] = array(
    'backendOptions' => array(
        'compression' => false,
        'servers' => array(
            array(
                // your memcached server ip /address
                'host' => 'localhost',
                // memcached port
                'port' => 11211,
            )
        )
    )
);
 
Последнее редактирование:
Может хост не тот или порт?
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу