Установка memcached на веб сервере nginx + php-fpm
Веб сервер Nginx с поддержкой PHP-FPM и Memcached позволяет повысить производительность веб-сайтов и веб-приложений.
Работа Memcache на веб сервере
Memcached - это бесплатная высокопроизводительная программа для кэширования объектов с открытым исходным кодом. Она позволяет кэшировать повторяющиеся вызовы объектов и баз данных PHP в системной памяти, что помогает значительно ускорить динамические веб-приложения.
Memcached - это хранилище ключей и значений в памяти для небольших фрагментов произвольных данных (строк, объектов) из результатов вызовов базы данных, вызовов API или рендеринга страницы.
Использование Memcached с Nginx, PHP-FPM на вашем WordPress или других веб-сайтах или блогах CMS - отличный способ улучшить их производительность.
Memcached - это простая, но мощная программа кэширования, которую веб-мастера и владельцы веб-сайтов должны по возможности использовать.
Это краткое руководство поможет установить и настроить Memcached на сервере, где не используется Apache.
Мы не будем рассказывать как установить и настроить веб сервер, мы сосредоточимся на установке и интеграции Memcache в веб сервер со связкой Nginx + PHP-FPM.
Установка Memcache
Для начала, нужно обновить систему. Мы решили описать процесс установки на Ubuntu 18 с PHP 7.2
Для этого запустим поочередно две команды.
$ sudo apt update
$ sudo apt upgrade
После чего займемся установкой и настройкой пакетов.
Сервис memcache
Для установки пакета, запустим команду.
$ sudo apt install memcached
php fpm
Пакет, входящий в дистрибутив не работает с php 7.X, поэтому устанавливаем через pecl На машине, где установлен PHP fpm.
sudo apt-get -y install pkg-config php7.2-dev php-pear zlib1g-dev libmemcached-dev
sudo pecl install memcached
Создаем файл memcached.ini в директории /etc/php/7.2/mods-available/ с содержимым.
; priority=25
extension=memcached.so
Далее, создадим симлинк на данный файл, при помощи команды.
sudo ln -s /etc/php/7.2/mods-available/memcached.ini /etc/php/7.2/fpm/conf.d/20-memcached.ini
После чего, нужно отредактировать файл Редактируем файл php.ini, находящийся в директории /etc/php/7.2/fpm/
Если у Вас версия PHP отличается от 7.2, следовательно и путь будет отличаться цифрами.
Находим в файле такие строки.
[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files
После редактирования, кусок кода должен выглядеть так.
[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
;session.save_handler = files
session.save_handler = memcached
session.save_path = "ip_addr_memcashed_service:11211"
Где session.save_path - это адрес и порт сервера, где установлен сам сервис memcache.
Осталось перезапустить сервис php fpm и Nginx, для того чтобы изменения вступили в силу.
sudo systemctl restart nginx
sudo systemctl reload php7.2-fpm
Проверка работы memcached
Многие спрашивают как проверить работу memcached?
Для проверки работы memcached необходимо создать в корне вашего веб сайта файл info.php с содержимым.
<?php
// Показывать всю информацию, по умолчанию INFO_ALL
phpinfo();
// Показывать информацию только о загруженных модулях.
// phpinfo(8) выдает тот же результат.
phpinfo(INFO_MODULES);
?>
Зайдя на ваш сайт по адресу https://ваш-сайт.ru/info.php вы увидите вот такое окно.
Если memcached работает, то вы увидите вот такие строки на экране вашего монитора.
Заключение. Установив и настроив кэширование на вашем веб сервере, вы не только обеспечите быструю работу сайта, но и уменьшите нагрузку на сервер.