====== Подключение 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 секунд**.