База знаний

Инструкции и ответы на вопросы о хостинге, работе сайтов и приложений

Работа с сайтом

Memcached — сервер кеширования данных в оперативной памяти. С его помощью можно добиться увеличения скорости работы сайта и снижения нагрузки на сервер.

Для использования Memcached требуется модуль PHP. На наших серверах установлено два таких модуля — Memcache и memcached. Вы можете использовать оба.

Активируйте модуль в Панели управления, раздел «Аккаунт» → «Услуги» и выберите объем памяти. Определить подходящий размер кеша можно опытным путем: воспользуйтесь проверочным скриптом.

В скрипте, который подключается к кеширующему серверу, укажите путь до сокета:

  • Для Memcache: unix:///home/login/tmp/memcached.sock
  • Для memcached: /home/login/tmp/memcached.sock:0

Сайты на популярных CMS тоже могут работать с Memcached. Рассмотрим процесс настройки для проектов, созданных с помощью Wordpress, Joomla! и 1C-Битрикс.

WordPress

В CMS Wordpress нет встроенных механизмов подключения к кеширующему серверу, поэтому используйте специальный плагин, например, W3 Total Cache.

Настройка плагина зависит от сайта: не существует алгоритма, который подошел бы каждому проекту. В общем случае рекомендуем включить кеширование страниц (Page cache) и запросов к базе данных (Database cache).

После установки плагина в боковом меню появится пункт «Performance». Перейдите в раздел «General Settings» и найдите блок «Page cache». Включите кеширование (Enable) и в выпадающем списке выберите метод — Memcached. Нажмите «Save all settings».

Выполните те же действия в блоке «Database cache».

В боковом меню перейдите в раздел «Page cache». Если на сайте доступна регистрация пользователей, отключите опцию «Don't cache pages for logged in users». Нажмите «Save all settings».

В блоке «Cache Preload» установите интервал очистки кеша — 86400 секунд (сутки). Сохраните изменения.

Перейдите к блоку «Advanced». В строке «Memcached hostname» укажите путь до сокета memcached и нажмите «Test». Сокет указан корректно, если в результате получено значение «Test passed».

В строке «Maximum lifetime of cache objects» установите время — 21600 секунд (6 часов). Опуститесь в нижнюю часть страницы и нажмите «Save all settings».

Перейдите в раздел «Database cache» и в строке «Memcached hostname» укажите путь до сокета memcached. Сохраните изменения.

Плагин настроен.

Joomla!

CMS Joomla! поддерживает работу с Memcached по умолчанию.

Чтобы включить кеширование, авторизуйтесь в административной части сайта и перейдите в раздел «Система» → «Общие настройки», вкладка «Система».

В блоке «Настройка кэша» укажите параметры, как на скриншоте. В поле «Сервер Memcache(d)» введите путь до сокета:

Сайт настроен для работы с Memcached.

Для настройки старых версий Joomla! (ниже 2.5) добавьте в конфигурационный файл configuration.php строки: public $memcache_server_host = 'unix:///home/login/tmp/memcached.sock';
public $memcache_server_port = '0';
«login» замените на логин вашего аккаунта хостинга.

1С-Битрикс

Чтобы подключить к Memcached сайт на CMS 1С-Битрикс, создайте в каталоге ~/public_html/bitrix файл .settings_extra.php и добавьте в него инструкции:

return array (
'cache' => array(
'value' => array (
'type' => 'memcache',
'memcache' => array(
'host' => 'unix:///home/login/tmp/memcached.sock',
'port' => '0'
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."login"
),
),
);
Замените «login» на логин вашего аккаунта в строке: 'host' => 'unix:///home/login/tmp/memcached.sock'

В административной части сайта перейдите в раздел «Настройки» → «Производительность» → «Панель производительности», вкладка «Битрикс (оптимально)», и проверьте, указано ли значение «memcache» в пункте «Хранение кеша».

Вернитесь в раздел «Аккаунт» → «Услуги» Панели управления хостинга и перезагрузите Memcache.

Проверка работы Memcached

Проверьте корректность настроек с помощью специального скрипта.

В корневом каталоге сайта создайте файл memcache.php и поместите в него следующий код.

$memcache_obj = new Memcache;
$memcache_obj->addServer('unix:///home/login/tmp/memcached.sock', 0);
$status = $memcache_obj->getStats();
$MBUsed= (real)$status["bytes"]/(1024*1024);
$MBSize=(real) $status["limit_maxbytes"]/(1024*1024);
?>

Статистика Memcache:





Версия Memcache сервера
Время работы Memcache (в секундах)
Максимальный объем памяти для Memcache Мб
Используется памяти Мб

В строке: $memcache_obj->addServer('unix:///home/login/tmp/memcached.sock', 0); замените «login» на логин вашего аккаунта хостинга. Сохраните изменения.

Обратитесь к скрипту из браузера по ссылке: http://domain.ru/memcache.php , где domain.ru — доменное имя сайта.

Значение в графе «Используется памяти» должно быть больше нуля. Если оно близко к максимальному объему памяти, увеличьте размер кеша в Панели управления.

Была ли эта инструкция полезной?