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

Какая версия php?
 
это что? ничего не понял
В консоли, php -m - просмотреть, чтобы xcache подтянулся. Подтянулся - ок, в config.php докидываем что-то в таком духе
Код:
$config['cache'] = array(
    'enabled' => true,
    'frontend' => 'Core',
    'frontendOptions' => array(
            'caching' => true,
            'automatic_serialization' => false,
            'cache_id_prefix' => 'xf_',
            'lifetime' => 18000
    ),
    'backend' => 'Xcache',
    'backendOptions' => array(),
    'cacheSessions' => true
);

А вообще, нужно поднимать версию php до 5.6 минимум, там уже опкеш, мемкеш, тот же редис и другие более продвинутые технологии.

А с 5.3 ССЗБ в общем.
 
В консоли, php -m - просмотреть, чтобы xcache подтянулся. Подтянулся - ок, в config.php докидываем что-то в таком духе
Код:
$config['cache'] = array(
    'enabled' => true,
    'frontend' => 'Core',
    'frontendOptions' => array(
            'caching' => true,
            'automatic_serialization' => false,
            'cache_id_prefix' => 'xf_',
            'lifetime' => 18000
    ),
    'backend' => 'Xcache',
    'backendOptions' => array(),
    'cacheSessions' => true
);

А вообще, нужно поднимать версию php до 5.6 минимум, там уже опкеш, мемкеш, тот же редис и другие более продвинутые технологии.

А с 5.3 ССЗБ в общем.
Попробовал добавить ваш код, посмотрим че с этого выйдет. Про php версию да я знаю, возможности пока нет переходить на свежее.
 
Мой хостер поддерживает opcache
что нужно сделать чтобы его включить на форуме?какие манипуляции?
 
Мой хостер поддерживает opcache
что нужно сделать чтобы его включить на форуме?какие манипуляции?
Ничего. Достаточно убедиться через phpinfo что opcache подключен.
 
По умолчанию кэширование в 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:
$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,
)
)
)
);
ошибка:
An unexpected error occurred. Please try again later.
 
если стоит php 5.6 все работает с этим конфигом, переключаю на 7.1, пишет ошибку

это помогло
Код:
$config['cache']['backend'] = 'Libmemcached';
 
Последнее редактирование:
Ребята, имею проблему.
Втыкаю код:
Код:
$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' => 'unix:///home/users/X/XXX/memcached/memcached.sock',
 
                // memcached port
                'port' => 0,
            )
        )
    )
);
Вместо X – мои данные.
И получаю такую феньку – на сайт входит, а в админпанель... начинает входить...картинка "XenForo" убегает вверх, а потом ХОП и, снова введите логин/парооль. И так бесконечно.
В журнале ошибок вот такая писака:
Код:
Запись журнала ошибок сервера
Информация об ошибке
ErrorException: MemcachePool::get(): Server 127.0.0.1 (tcp 11211, udp 0) failed with: В соединении отказано (111) - library/Zend/Cache/Backend/Memcached.php:180
Сгенерирована пользователем: Неизвестная учётная запись, 13 мин. назад
Трассировка стэка
#0 [internal function]: XenForo_Application::handlePhpError(8, 'MemcachePool::g...', '/home/users/f/f...', 180, Array)
#1 /home/users/f/fmr/domains/vsirius.ru/library/Zend/Cache/Backend/Memcached.php(180): MemcachePool->get('xf_data_options')
#2 /home/users/f/fmr/domains/vsirius.ru/library/Zend/Cache/Core.php(303): Zend_Cache_Backend_Memcached->load('xf_data_options', false)
#3 /home/users/f/fmr/domains/vsirius.ru/library/XenForo/Model/DataRegistry.php(87): Zend_Cache_Core->load('xf_data_options')
#4 /home/users/f/fmr/domains/vsirius.ru/library/XenForo/Dependencies/Abstract.php(147): XenForo_Model_DataRegistry->getMulti(Array)
#5 /home/users/f/fmr/domains/vsirius.ru/library/XenForo/FrontController.php(127): XenForo_Dependencies_Abstract->preLoadData()
#6 /home/users/f/fmr/domains/vsirius.ru/index.php(13): XenForo_FrontController->run()
#7 {main}
Содержимое запроса
array(3) {
  ["url"] => string(19) "https://ляляля.ru/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}
Где косяк? В чем прОблем?
На хостинге (Джино – вот не надо только смеятся!) написано так:
Для подключения к Memcached используйте следующий адрес сокета unix:///home/usersX/первая_буква_логина/логин/memcached/memcached.sock и порт 0.

Здесь и далее X в имени директории usersX может быть целым числом (1, 2, ...) или вообще отсутствовать. Точное значение для вашего аккаунта уточняйте в разделе «Хостинг / Техподдержка / Техническая информация» контрольной панели аккаунта.

Альтернативный вариант — использовать для подключения IP и порт Memcached-сервера. Для каждого аккаунта эти параметры различаются: их значение также можно узнать в разделе «Хостинг / Техподдержка / Техническая информация» контрольной панели аккаунта.

Пример подключения к Memcached из PHP:

<?php
$m = new Memcache;
$m->connect('unix:///home/usersX/первая_буква_логина/логин/memcached/memcached.sock', 0);
$m->set('key', 'value');
echo $m->get('key');
?>
Аналогичный пример на языке Python:

import memcache
m = memcache.Client(['unix:///home/usersX/первая_буква_логина/логин/memcached/memcached.sock'])
m.set('key', 'value')
print m.get('key')
И на Perl:

use Cache::Memcached;
my $m = Cache::Memcached->new({servers => ['/home/usersX/первая_буква_логина/логин/memcached/memcached.sock']});
$m->set('key', 'value');
print $m->get('key');
 
ErrorException: MemcachePool::get(): Server 127.0.0.1 (tcp 11211, udp 0) failed with: В соединении отказано (111) - library/Zend/Cache/Backend/Memcached.php:180
Для подключения к Memcached используйте следующий адрес сокета unix:///home/usersX/первая_буква_логина/логин/memcached/memcached.sock и порт 0.
 
и… ? Где косяк то? Пробовал и 127… ставить. Та же байда. Вот localhost не пробовал, может так?
 
mrfmrka а зачем обязательно через сокет коннектится? Почему не через порт?
 
mrfmrka а зачем обязательно через сокет коннектится? Почему не через порт?
FAQ с Джино:
Для подключения к Memcached используйте следующий адрес сокета unix:///home/usersX/первая_буква_логина/логин/memcached/memcached.sock и порт 0.
 
Так сделайте, как официально XenForo рекомендует -

Код:
// your memcached server IP /address
            'host' => 'localhost',
            
            // memcached port
            'port' => 11211,

Я лично так использую, все прекрасно работает.
 
Так сделайте, как официально XenForo рекомендует -

Код:
// your memcached server IP /address
            'host' => 'localhost',
           
            // memcached port
            'port' => 11211,

Я лично так использую, все прекрасно работает.
Пробовал, та же хрень :cry:
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу