В этой статье представлена общая информация как установить и сконфигурировать сервер Memcached, необходимые расширения php, а так же как установить и настроить phpMemcachedAdmin для сбора статистики и анализа работы memcached-сервера.

Memcached — это программное обеспечение, которое реализует сервис кэширования данных в оперативной памяти, основанное на хэш-таблицах. Предоставляет возможность кэшировать данные в оперативной памяти большинства доступных серверов благодаря качественной клиентской библиотеке. 

Так же стоит понимать разницу между сервером Memcached и расширением для php — Memcache. Если функционала расширения Memcache хватает для Вашего проекта (так как функционал расширения ограничен, но может обеспечить быстродействие и использует меньше ресурсов), то рекомендуем Вам использовать расширение Memcache. 

Установка и первичная настройка сервера Memcached будет производиться на примере дистрибутива Debian 10 с установкой на разных серверных связках — Apache и Nginx-PHP-FPM. 

Сначала следует настроить веб-сервер для корректной работы домена и сайтов. 

Следующим этапом является непосредственная установка сервера Memcached: 

Сначала нужно обновить репозиторий: 

apt-get update && apt-get upgrade

Далее нужно установить Memcached и модуль php для корректной работы: 

apt-get install memcached php-memcache

После установки мы можем проверить работает ли сервис и использует ли он для работы локальный сервер: 

netstat -tap | grep memcached

Необходимо поправить конфигурацию сервера Memcached перед непосредственным использованием. 

Для ОС Debian/Ubuntu это файл /etc/memcached.conf, для CentOS — /etc/sysconfig/memcached

Нужно отредактировать следующие поля: 

-m 1024 -максимальное количество подключений

-c 2048 -размер памяти которая выделяется для memcached

-l 127.0.0.1 задаем локальный интерфейс

-U 0 - отключаем UDP для предотвращения большинства распространенных атак на сервер memcached

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

После внесения изменений в конфигурацию, перезапускаем memcached:

service memcached restart

Далее нужно перезагрузить сервер, который на данный момент работает на сервере: 

service apache2 restart

service nginx restart

service php-fpm restart

Чтобы проверить работу сервера memcached, можно воспользоваться простым скриптом php который будет добавлять запись в кэш и извлекать ее оттуда. 

Тестовый файл со следующим кодом поместим в корень сайта: 

Далее переходим на сайт по названию файла в браузере и видим результат работы: 

Чтобы установить и настроить phpMemcachedAdmin — ПО, которое обеспечивает веб-интерфейс для мониторинга, сбора статистики и управления Memcached, мы предоставляем вариант с созданием поддиректории в корне сайта и настройки аутентификации для доступа. 

Для начала нужно создать папку в директории сайта, чтобы загрузить туда свежую версию ПО: 

mkdir phpMemcachedAdmin && cd phpMemcachedAdmin

wget https://github.com/elijaa/phpmemcachedadmin/archive/master.zip

Далее распаковываем архив в целевую папку и настраиваем права доступа для нее: 

unzip master.zip 

mv phpmemcachedadmin-master/* .

find ./ -type f -exec chmod 0644 {} \;

find ./ -type d -exec chmod 0755 {} \;


Далее нужно создать файл .htaccess, чтобы обеспечить авторизацию: 

Задаем пароль: 

htpasswd -c .htpasswd memcachedmanager

Проверяем результат, перейдя по названию папки в корне сайта: 

Дополнительно возможно нужно будет изменить права на папки в директории phpMemcachedAdmin и отредактировать правильный путь к конфигурационному файлу: 

chmod -R 777 Temp/ Config/