Подключение к Memcached на виртуальном хостинге
Как настроить доступ к Memcached в популярных CMS на виртуальном хостинге.
На виртуальном хостинге доступ к Memcached осуществляется через сокет. Поддерживаются расширения PHP memcache и memcached. По умолчанию каждому пользователю выделяется 32 МБ памяти — при необходимости лимит можно увеличить через тикет-систему.
Путь к сокету зависит от используемого расширения PHP.
Для расширения php-memcache:
Путь к сокету: unix:///корневой_каталог_пользователя/.memcached/memcached.sock
Порт подключения: 0
Для расширения php-memcached:
Путь к сокету: корневой_каталог_пользователя/.memcached/memcached.sock
Порт подключения: 0
Корневой каталог пользователя указан на главной странице cPanel в разделе «Основная информация».
Основная информация в cPanel
Joomla 5
Joomla поддерживает Memcached из коробки — дополнительные плагины не требуются.
Авторизуйтесь в админ-панели и перейдите в «Система» → «Общие настройки» → «Система». В настройках кэширования укажите:
Cache Handler—MemcachedMemcache(d) Server Host—корневой_каталог_пользователя/.memcached/memcached.sockMemcache(d) Server Port—11211
Настройки кэширования в Joomla
Нажмите Сохранить.
WordPress
WordPress не поддерживает Memcached нативно, но его можно подключить через плагин W3 Total Cache.
В настройках плагина на вкладке General Settings в поле Page Cache Method выберите Memcached.
W3 Total Cache — General Settings
Затем перейдите на вкладку Page Cache → Advanced и в поле Memcached hostname:port / IP:port укажите:
корневой_каталог_пользователя/.memcached/memcached.sock:0
W3 Total Cache — Page Cache
OpenCart
OpenCart поддерживает Memcached встроенными средствами.
OpenCart 3.0 — добавьте в конец файлов config.php и admin/config.php:
define('CACHE_HOSTNAME', '/home/ВАШ_АККАУНТ/.system/memcache/socket');
define('CACHE_PORT', '0');
define('CACHE_PREFIX', 'oc_');
OpenCart 2.2–2.3 — добавьте в оба конфигурационных файла:
define('CACHE_HOSTNAME', 'unix:///home/ВАШ_АККАУНТ/.system/memcache/socket');
define('CACHE_PORT', '0');
define('CACHE_PREFIX', 'oc_');
В файле system/config/default.php замените:
$_['cache_type'] = 'file';
на:
$_['cache_type'] = 'mem';
Bitrix
Bitrix поддерживает Memcached через расширение php-memcache, доступное только для PHP 5.3–5.6.
Добавьте в файл bitrix/php_interface/dbconn.php:
define("BX_CACHE_TYPE", "memcache");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
define("BX_MEMCACHE_HOST", "unix:///корневой_каталог_пользователя/.memcached/memcached.sock");
define("BX_MEMCACHE_PORT", "0");
Добавьте в файл bitrix/.settings_extra.php:
<?php
return array(
'cache' => array(
'value' => array(
'type' => 'memcache',
'memcache' => array(
'host' => 'unix:///корневой_каталог_пользователя/.memcached/memcached.sock',
'port' => '0',
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
);
Если файла
bitrix/.settings_extra.phpне существует — создайте его вручную.
DLE
DLE поддерживает Memcached встроенными средствами.
В админ-панели перейдите в «Настройка системы» → «Оптимизация». В поле «Тип кэширования на сайте» выберите Memcache, а в поле «Данные для подключения к Memcache серверу» укажите:
корневой_каталог_пользователя/.memcached/memcached.sock
Drupal
Drupal не поддерживает Memcached нативно — сначала установите модуль Memcache и активируйте его в разделе «Расширения».
Drupal 7 — добавьте в конец файла /sites/default/settings.php (замените ваш_логин на имя аккаунта):
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc';
$conf['memcache_stampede_protection'] = TRUE;
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;
$conf['memcache_servers'] = array('unix:///home/ваш_логин/.memcached/memcached.sock' => 'default');
Drupal 8+ — добавьте в файл settings.php:
$settings['memcache']['servers'] = ['unix:///home/ваш_логин/.memcached/memcached.sock' => 'default'];
$settings['memcache']['bins'] = ['default' => 'default'];
$settings['memcache']['key_prefix'] = '';
$settings['cache']['default'] = 'cache.backend.memcache';
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!