====== Подключение memcached для CMS WordPress. ======
**Предупреждение: с момента публикации статьи прошло много времени, некоторая информация может быть неактуальна!**
Данная статья описывает установку кэширующего плагина для CMS WordPress. Предполагается, что Вы уже имеете установленный WordPress, работающий в технических условиях тестового стенда.
===== Тестовый стенд. =====
* PHP версии 7.2 в режиме модуля Apache.
* Wordpress 4.9.5 ( https://wordpress.org/wordpress-4.9.5.zip )
* Плагин "WP-FFPC" ( https://wordpress.org/plugins/wp-ffpc/ )
===== Подготовка. =====
- Для начала, убедитесь, что Ваш WWW-домен использует версию PHP 7.2. Если нет, то измените версию PHP, либо продолжайте следовать инструкции, делая акцент на иную версию PHP. Подробнее: [[https://wiki.lealhost.com/doku.php?id=%D1%81%D0%BC%D0%B5%D0%BD%D0%B0_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_php|Как узнать и изменить версию PHP?]].\\
- Теперь, нам необходимо включить memcached расширение в настройках PHP. Для этого войдите в [[https://lpanel.lealhost.com|LealPanel]], используя Ваш логин и пароль от ISPManager. Перейдите в раздел **"Конфигурирование PHP"**, выберите вкладку настроек **PHP 7.2** и включите модуль **"memcached"**, установив соответствующую галочку. Сохраните настройки. Подождите одну минуту, пока изменения вступят в силу.\\
- Теперь нам необходимо включить сам Memcached-сервер. Перейдите в раздел внутри LealPanel — **"Memcached-сервер"**. Нажмите кнопку **"Включить memcached"**. Дождитесь пока обновится индикатор включения и появится статус **"Работает"**. Одновременно с этим система выдаст адрес UNIX-сокета вида: ///home/www/ваш_логин/data/ваш_логин_mem.sock//.\\ Именно этот адрес нужно использовать для настройки CMS WordPress в дальнейшем, запишите его.
**На этом подготовка со стороны системы завершена. Переходим к установке плагина "WP-FFPC" для WordPress.**
===== Установка плагина для WordPress. =====
- Войдите в панель администратора WordPress по адресу Вашего сайта.
- Перейдите в раздел **"Плагины" => "Добавить новый"**
- Через поиск плагинов, введите для поиска: **"FFPC"**, появится плагин, как на скриншоте ниже:\\ {{ :search_ffpc.png?direct |}}\\
- Нажмите кнопку **"Установить"** напротив плагина "WP-FFPC".
- Плагин установится, активируйте плагин после установки, нажав кнопку **"Активировать"** на той же странице.
- Войдите в настройки плагина **"WP-FPCC"**, как на скриншоте ниже:\\ {{:wp-ffpc-opt1.png?direct }}\\
- Убедитесь, что **"Select Backend"** установлен в значение **"PHP Memcached"**, если это не так, то установите данное значение.
- Перейдите во вкладку настроек **"Backend Settings"**.
- Измените значение поля **"Hosts"** следующим образом. В пункте **3 (три)** раздела подготовки данной инструкции, мы получали адрес вида ///home/www/ваш_логин/data/ваш_логин_mem.sock//. Вам необходимо привести данный адрес к следующему виду, добавив в начало "%%unix://%%". То есть значение поля **"Hosts"** должно быть таким: **%%unix:///home/www/ваш_логин/data/ваш_логин_mem.sock%%**\\ ''(НЕ ЗАБУДЬТЕ ИЗМЕНИТЬ ЗНАЧЕНИЯ НА СВОИ!)''
- Остальные поля в модальной вкладке **"Backend Settings"** должны быть пустыми, как на скриншоте ниже:\\ {{:wp-ffpc-opt2.png?direct |}}\\
- Нажмите **"Save Changes"**, для применения настроек.
- В случае успешного подключения к Memcached-серверу появится следующая надпись:\\ {{:wp-ffpc-opt3.png?direct |}}
- Если Вы, также как и мы, устанавливали чистую WordPress, то, вероятно, Вам понадобится занести строку\\ **define('WP_CACHE', true);**\\ в файл **wp-config.php**.\\ Данная строка должна быть добавлена перед строчками MySQL-опций, обычно обозначается комментарием:\\ **%%// ** MySQL settings - You can get this info from your web host ** //%%**.
- На этом установка плагина завершена!
===== Тестирование утилитой ab (Apache Benchmark) =====
Мы решили протестировать WordPress с включенным и настроенным плагином **"WP-FFPC"** и с отключенным.
* Тестирование без плагина **"WP-FFPC"** (8 потоков, 10000 запросов):
ab -c 8 -n 10000 http://test-wp.asyx.ru/
Server Software: nginx/1.12.2
Server Hostname: test-wp.asyx.ru
Server Port: 80
Document Path: /
Document Length: 53960 bytes
Concurrency Level: 8
Time taken for tests: 186.452 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 542200000 bytes
HTML transferred: 539600000 bytes
Requests per second: 53.63 [#/sec] (mean)
Time per request: 149.161 [ms] (mean)
Time per request: 18.645 [ms] (mean, across all concurrent requests)
Transfer rate: 2839.83 [Kbytes/sec] received
Результат теста: **53.63 страниц в секунду**, на тестирование затрачено **186.452 секунд**.
* Тестирование с плагином **"WP-FFPC"** (8 потоков, 10000 запросов):
ab -c 8 -n 10000 http://test-wp.asyx.ru/
Server Software: nginx/1.12.2
Server Hostname: test-wp.asyx.ru
Server Port: 80
Document Path: /
Document Length: 53959 bytes
Concurrency Level: 8
Time taken for tests: 5.404 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 542370000 bytes
HTML transferred: 539590000 bytes
Requests per second: 1850.31 [#/sec] (mean)
Time per request: 4.324 [ms] (mean)
Time per request: 0.540 [ms] (mean, across all concurrent requests)
Transfer rate: 98003.33 [Kbytes/sec] received
Результат теста: **1850.31 страниц в секунду**, на тестирование затрачено **5.404 секунд**.