проверить работу memcached php
Memcache
Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти, тем самым, ускоряет работу приложения и снижает нагрузку на сервер.
Принцип действия Memcached: в оперативной памяти сервера, который доступен по сетевому протоколу, хранятся определенные данные, доступ к которым осуществляется через ключ или имя. Поэтому memcached иногда определяют как хэш-таблицу, которая используется для кэширования страничного кода, результатов запросов к базам данных и так далее.
Пример правильно настроенного Memcache
Используйте скрипты из моей статьи, чтобы разобраться работает у вас кеширование Memcache или нет. Чтобы получить такой результат, как на скриншоте по на нагрузке на Mysql, мне потребовалось почти полтора месяца биться головой о стену.
Вы можете облегчить себе жизнь, используя мои наработки, для создания правильного технического письма в техподдержку вашего хостинг провайдера. Удачи!
Как проверить, установлен ли memcache или memcached для PHP?
Скрипт проверяет установку memcache или memcached для хостера Timeweb
Сервис memcache у хостинг провайдера Timeweb доступен по умолчанию на всех серверах виртуального хостинга. Для подключения используйте следующие параметры: сервер: localhost (127.0.0.1); порт: 11211.
Скрипт при первом запуске, создает тестовый ключ. Следует обновить страницу и убедится что ключ создан и работает.
Крупнейшая в Европе школа английского языка
Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!
Английский для IT‑специалистов по Skype
Персональные занятия по разумным ценам. Длительность курса: 50 уроков по 50 минут. Управляй расписанием занятий через мобильное приложение!
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:
GNU Free Documentation License 1.3
Установка Memcached на Ubuntu Server 18.04
Memcache — это программа, которая позволяет временно хранить (кэшировать) данные в оперативной памяти на основе хеш-таблиц. При поступлении запроса, memcache проверит наличие данных в оперативной памяти, если данных в кэше нет, будет произведен запрос к базе данных. При последующем запросе тех же данных ответ будет выдан из оперативной памяти Memcache. Это позволит нам значительно ускорить работу сервера, т.к. данные будут отдаваться из оперативной памяти, а не из базы данных.
Установка Memcached и компонентов
Все компоненты доступны в официальном репозитории Ubuntu
Нам потребуется установить Memcached и необходимые зависимости, сервер баз данных MySQL и PHP с компонентами для взаимодействия.
Установка Memcached
По дефолту Memcached прослушивает порт — 11211, на localhost(127.0.0.1). Файл настроек Memcached расположен /etc/memcached.conf
Установка необходимых компонентов
Стоит обратить внимание. Есть два компонента для PHP Memcache, один php-memcache, а другой php-memcached. Мы будем использовать php-memcached, т.к. он более стабилен и реализует больше возможностей.
Теперь давайте проверим, как это работает
Сделаем запрос к PHP, что он знает о Memcached и включен ли он.
Создаем файл info.php в корневом разделе по умолчанию. /var/www/html/
Сохраняем файл ctrl+o и выходим ctrl+x
Теперь посмотрим информацию в браузере. Для этого переходим по адресу:
должны получить вот такое:
Memcached включен и найден на сервере.
Так же можно проверить, запущена ли служба Memcached
Вывод должен быть следующий:
Как проверить работу Memcached
Создадим в корне сайта файл test.php и запишем туда следующий код:
Теперь осталось проверить результаты: http://IP-servera/test.php
Если есть вопросы, то пишем в комментариях.
Также можете помочь проекту, заранее всем СПАСИБО.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Что такое Memcache и как его установить?
Memcache — это расширение PHP, которое c помощью программного обеспечения Memcached реализует кэширование данных в оперативной памяти на основе хэш-таблицы. Позволяет увеличить производительность и скорость загрузки страниц веб-сайта. В данной статье поговорим подробнее о том, что такое кеширование Memcache, чем оно отличается от Memcached, как установить на VPS сервере и настроить в популярных хостинг-панелях, CMS системах — WordPress, Joomla.
Как проверить, установлен ли Memcache?
Проверить, установлен на вашем сервере модуль memcache или нет можно с помощью файла phpinfo.php. Скопируйте его в корневую директорию сайта и наберите в адресной строке браузера путь: exmaple.com/phpinfo.php
Перед вами появится конфигурация вашего веб-сервера, в ней нужно найти Memcache:
Если его нет — переходим к следующему пункту.
Установка Memcached и Memcache на сервер
Для начала определимся чем они друг от друга отличаются:
Поэтому, чтобы настроить Memcache-кеширование на сайте, необходимо установить и сервис, и модуль на VPS сервер.
Для установки на Ubuntu 18.04 подойдут такие команды:
sudo apt update
sudo apt install memcached
sudo apt install libmemcached-tools
sudo apt-get install php-memcache
Перезапустите веб-сервер. Теперь проверьте phpinfo — Memcache уже должен быть на месте.
Настройка кеширования Memcache в WordPress
Рассмотрим теперь включение Memcache-кеширования на CMS WordPress с помощью плагина WP-FFPC:
Настройка Memcache на Joomla
Включение расширения Memcache и Memcached в ISPmanager
Если у вас хостинг на базе контроль-панели ISPmanager, первым делом нужно включить режим CGI на сайте — он позволит активировать дополнительные модули.
Для этого перейдите в настройки домена и найдите вкладку «Дополнительные возможности»:
Установите настройки как на скриншоте. Затем перейдите в раздел PHP и откройте «Расширения CGI»:
Находим memache и memcached — переводим в режим Включено:
Все. Memached установлен на вашем сервере посредством CGI скриптов.
CGI (Common Gateway Interface) — «общий интерфейс шлюза», который позволяет взаимодействовать с веб-сервером по протоколу CGI. В качестве CGI-программ могут использоваться программы/скрипты написанные на любых языках программирования, как на компилируемых, так и на скриптовых, и даже на shell.
Теперь нужно включить Memcache в панели администратора Joomla. Переходим к следующему пункту.
Включение Memcache в CMS Joomla 1.5 — x.x
Переходим на вкладку «Система»:
И далее в опциях «Настройка кэша» выбираем Обработчик кэширования — Memcache (в некоторых версиях Jommla просто «файл памяти»):
Сохраняем настройки. Установка завершена.
Примечание: В некоторых старых версиях Joomla дополнительно нужно указать хост и порт Memcache. По умолчанию, хост — localhost (или 127.0.0.1), порт — 11211. Иногда, внести эти изменения можно только через файл configuration.php, добавив строки:
Как заявляют специалисты хостинга Beget, после включения расширения Memcache:
«…видно уменьшение времени генерации ответа сервером — 0.09 сек. против 0.13 сек. Хоть разница показателей и незначительна, но с увеличением количества контента на сайте и его посещаемости эта разница будет увеличиваться.»
Кеширование Memcached
Memcached — сервер кеширования данных в оперативной памяти. С его помощью можно добиться увеличения скорости работы сайта и снижения нагрузки на сервер.
Для использования Memcached требуется модуль PHP. На наших серверах установлено два таких модуля — Memcache и memcached. Вы можете использовать оба.
Активируйте модуль в Панели управления. Для этого кликните на баланс аккаунта в правом верхнем углу, после чего перейдите в раздел «Дополнительные услуги» и выберите объем памяти. Определить подходящий размер кеша можно опытным путем: воспользуйтесь проверочным скриптом.
В скрипте, который подключается к кеширующему серверу, укажите путь до сокета:
Сайты на популярных 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.
1С-Битрикс
Чтобы подключить к Memcached сайт на CMS 1С-Битрикс, создайте в каталоге
/public_html/bitrix файл .settings_extra.php и добавьте в него инструкции:
В административной части сайта перейдите в раздел «Настройки» → «Производительность» → «Панель производительности», вкладка «Битрикс (оптимально)», и проверьте, указано ли значение «memcache» в пункте «Хранение кеша».
Вернитесь в раздел «Аккаунт» → «Услуги» Панели управления хостинга и перезагрузите Memcache.
Проверка работы Memcached
Проверьте корректность настроек с помощью специального скрипта.
В корневом каталоге сайта создайте файл memcache.php и поместите в него следующий код.
Статистика Memcache:
Версия Memcache сервера | |
Время работы Memcache (в секундах) | |
Максимальный объем памяти для Memcache | Мб |
Используется памяти | Мб |
Значение в графе «Используется памяти» должно быть больше нуля. Если оно близко к максимальному объему памяти, увеличьте размер кеша в Панели управления.
Установка и настройка Memcached
В результате применения информации, данной в этой статье, вы сможете установить и настроить сервер Memcached и нужное расширение php для взаимодействия с ним, а также сервис анализа и статистики phpMemcachedAdmin
Установка будет происходить под Debian с сервером бекенда Apache. Если у вас рабочая связка NGINX + php5-fpm, просто заменяйте в командах apache2 на php5-fpm
Рабочий инструментарий: файловый менеджер для подключения по ssh со встроенным редактором Far Manager или putty.
Теперь допустим, у нас на этом хостинге уже есть сайт http://example.com
Для начала, нужно определить, как сконфигурирован PHP (вдруг Memcached уже установлен?)). Для этого в корне сайта временно создадим файл info.php с кодом
Теперь заглянем в него http://example.com/info.php
Если видим, что есть похожая запись, значит, всё в порядке, нужное расширение php установлено.
Если нет, значит, придётся поработать.
Как установить сервер Memcached
Перед установкой нужно обновить репозиторий
Теперь установим memcached и модуль php под него
Идёт установка. После её завершения проверяем, что получилось
В результате мы увидим что-то навроде
Теперь нужно перезагрузить Apache или php-fpm
Настройка Memcached
Теперь, когда сервер установлен, его надо поднастроить. Это не сложно и не займёт много времени
Закрываем Memcached от доступа извне
Как вы видите, memcached висит на 11211 порту по умолчанию. Так как в memcached нет встроенных механизмов аутентификации, то выходит, что любой может подсоединиться извне и использовать его в своих целях. Чтобы избежать этого, вы можете либо закрыть порт 11211 с помощью фаервола, либо сконфигурировать memcached-сервер, чтобы он мог использоваться только с локального хоста. Ниже описан последний способ.
В итоге мы должны увидеть подобное
Также, после всех изменений не забудьте перезапустить Apache
Увеличиваем объём рабочей памяти Memcached
По умолчанию, в Memcached отведено на использование 64 мегабайта оперативной памяти. Я увеличу до 1024, вы исходите из параметров вашего сервера
Хранение сессий PHP в Memcached
Если одним сервером или кластером Memcached пользуются несколько разных сайтов, то они могут перехватывать сессии друг друга и получать доступ к аккаунтам их пользователей, что представляет собой потенциальную опасность
Можно ускорить php, перенеся хранилище сессий из hdd в оперативную память с помощью memcached
Способ для расширения memcache
Способ для расширения memcacheD
Проверка phpinfo
Готовый рабочий конфигурационный файл Memcached
Вы также можете настроить всё под свои потребности, конфигурационный файл содержит подробные комментарии:
Установка расширения memcache
Ниже пошагово указаны команды, с помощью которых вы сможете установить php-расширение memcache из консоли вручную
Перезагрузим Apache, чтобы изменения вступили в силу
Как проверить работу Memcached
Создадим в корне сайта файлик memcachetest.php и запишем туда следующий код
Теперь осталось проверить результаты: http://example.com/memcachetest.php
Если всё сделали правильно, увидите что-то навроде
phpMemcachedAdmin — мониторинг, статистика и управление Memcached
phpMemcachedAdmin — это программное обеспечение, предоставляющее веб-интерфейс для мониторинга и управления сервисом Memcached на Linux. Позволяет видеть в реальном времени статистику для всех поддерживаемых сервером операций: get, set, delete, increment, decrement, reclaimed, evictions, cas, а также серверную статистику: сеть, позиции, рабочую версию вкупе с чартами и внутренней серверной конфигурацией.
Установка и настройка phpMemcachedAdmin
Тут можно пойти несколькими путями: выделить отдельный домен или поддомен под работу этого сервиса. А можно сделать поддиректорию в рабочем сайте и поставить пароль на неё или настроить ограничение по IP. Я опишу последний способ с установкой пароля на папку как более простой.
Итак, допустим, у нас есть сайт https://sheensay.ru
Создаём директорию и переходим в неё
Скачиваем последнюю версию дистрибутива
Распаковываем и удаляем архив с дистрибутивом
Рекурсивно выставляем нужные права доступа в текущей директории
Вводите свой пароль.
В заключение
Рекомендую ознакомиться со статьёй про memcached. В ней раскрыта общая информация о нём и некоторые тонкости работы.
На этом всё. Если что непонятно, задавайте вопросы в комментариях