В этой статье представлена общая информация как установить и сконфигурировать сервер 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/