Установка и настройка memcached на CentOS

Тематические термины: memcached , CentOS .

В данной инструкции рассмотрим процесс установки memcached + php-memcached под различные версии операционной системы CentOS.

Rocky Linux / CentOS 8

Первым этапом мы установим и настроим сервис memcached. Вторым — модуль php-memcached.

Сервис memcached

Выполняем установку пакетов:

dnf install memcached libmemcached

Создаем или открываем на редактирование конфигурационный файл для запуска сервиса:

vi /etc/sysconfig/memcached

Приводим его к виду:

PORT=»11211″
USER=»memcached»
MAXCONN=»1024″
CACHESIZE=»512″
OPTIONS=»-l 127.0.0.1 -U 0″

* где PORT указываем на каком порту будет слушать сервис кэширования; USER — пользователь, под которым должен запускаться сервис; MAXCONN — максимальное число одновременных подключений; CACHESIZE — размер под кэш в мегабайтах; OPTIONS — параметры запуска (в данном примере наш сервис будет принимать запросы только с адреса локальной петли).

После разрешаем автозапуск и запускаем сервис кэширования:

systemctl enable memcached —now

Модуль для php

Устанавливаем пакеты, необходимые для сборки php-pecl-memcached:

dnf install php-devel php-pear zlib-devel make php-pear

dnf —enablerepo=powertools install libmemcached-devel

Запускаем компиляцию и сборку php-расширения:

pecl install memcached

Создаем конфигурационной файл для подключения расширения:

vi /etc/php.d/20-memcached.ini

extension=memcached.so

После установки модуля перезапускаем …

а) Apache:

systemctl restart httpd

б) или php-fpm:

systemctl restart php-fpm

CentOS 7

Установка сервиса и модуля php выполняется из репозитория одной командой:

yum install memcached php-pecl-memcached

Разрешаем автозапуск сервиса:

systemctl enable memcached

И запускаем его:

systemctl start memcached

Перезапускаем веб-сервер.

а) Apache:

systemctl restart httpd

б) PHP-FPM:

systemctl restart php-fpm

На этом все! Memcached с настройками по умолчанию ускорит работу веб-сервера.

Чтобы убедиться в этом, вводим следующую команду:

php -r «phpinfo();» | grep memcache

* в данном примере веб-сервер использует интерпретатор для PHP .

Проверка

Чтобы проверить, что модуль memcached работаем смотрим статус в phpinfo:

В phpinfo появилась информация о поддержке Memcached

… или вводим команду:

php -m | grep memcached

Мы должны получить:

memcached

Настройка

Настройки применяются в файле:

vi /etc/sysconfig/memcached

Рассмотрим примеры некоторых настроек.

1. Использование сокетов

По умолчанию, memcached запускается на порту 11211. Если мы хотим использовать сокетный файл, то меняем в конфигурационном файле опции:

PORT=»0″

OPTIONS=»-s /tmp/memcached.sock -a 0666″

* где:

  • PORT — указание на номер порта (его мы отключаем, задав значение 0);
  • OPTIONS — дополнительные опции запуска. При этом, если в вашем случае какие-то опции заданы, нужно не удалять их, а добавить перечисленные здесь.
    • -s /tmp/memcached.sock — путь к сокетному файлу.
    • -a 0666 — права для сокетного файла.

Перезапускаем сервис:

systemctl restart memcached

Задать логин пароль

Настройка механизма аутентификации осуществляется с применением sasl2. Для начала, установим его:

yum install cyrus-sasl-plain

Создаем конфигурационный файл:

vi /etc/sasl2/memcached.conf

mech_list: plain
log_level: 1
sasldb_path: /etc/sasl2/memcached-auth

* где:

  • mech_list — механизм передачи логина и пароля. В данном примере в открытом текстовом виде.
  • log_level — уровень логирования.
  • sasldb_path — путь до файла базы логинов и паролей.

Создадим пользователя:

saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-auth admin

* в нашем примере будет создан пользователь admin и сохранен в файле /etc/sasl2/memcached-auth .

Система запросит дважды пароль для создаваемого пользователя.

Теперь зададим владельца для базы с паролями:

chown memcached:memcached /etc/sasl2/memcached-auth

Открываем конфигурационный файл для memcached:

vi /etc/sysconfig/memcached

Для директивы OPTIONS добавляем -S (включает SASL):

OPTIONS=»… -S »

А выше OPTIONS добавляем строки:


SASL_CONF_PATH=/etc/sasl2/memcached.conf
MEMCACHED_SASL_PWDB=/etc/sasl2/memcached-auth

Перезапускаем сервис:

systemctl restart memcached

EnglishRussianUkrainian