Hyper Cache

Рубрика: WordPress - Статьи по CMS

Здравствуйте, уважаемые посетители сайта okITgo.ru! Нередко при использовании системы управления контентом для сайта возникает необходимость в оптимизации движка для ускорения работы вашего ресурса, для снижения нагрузки на сервер хостера. Для пользователей WordPress незаменимым плагином, решающим обе задачи, является очень полезный плагин Hyper Cache, о котором и пойдет речь в данной публикации.


Установка Плагина Hyper Cache

Качаем архив с плагином на официальном сайте WordPress. На момент публикации текущая версия была 2.8.5, соответственно, скачанный архив назывался “hyper-cache2.8.5.zip”. Извлекаем содержимое архива – папку hyper-cache, затем эту папку копируем в директорию движка с плагинами:

wp-content\plugins\

Редактирование Файла Конфигурации WP

Следующий шаг – открываем на редактирование главный файл конфигурации ВордПресс – “wp-config.php”, который лежит в корневой директории движка. Необходимо вставить строку

define(‘WP_CACHE’, true);

в любое место до строк

/** Абсолютный путь к директории WordPress. */
if ( !defined(‘ABSPATH’) )
  define(‘ABSPATH’, dirname(__FILE__) . ‘/’);

например, в самое начало файла – перед строками:

/** Имя базы данных для WordPress */
  define(‘WP_CACHE’, true);
  define(‘DB_NAME’, ‘ИМЯ_БД’);

Активация Кэширования

Теперь заходим в админку WP, щелкаем меню “Плагины”, находим там плагин “Hyper Cache” и щелкаем “Активировать” (ссылка прямо под заголовком плагина). Далее кликаем на меню “Настройки” -> “Hyper Cache” и проверяем, что нет предупреждений. В этом случае кэширование готово к работе. Если предупреждения есть – скорее всего необходимо настройить права доступа файловой системы (смотрите далее), поскольку плагин не может создать необходимую директорию.


Настройка Прав Доступа Файловой Системы

В панели управления сайтом (например, cpanel) заходим в диспетчер файлов и выставляем права доступа 777 на папку wp-content. После того, как будет создана поддиректория wp-content/cache/hyper-cache/ (для этого надо, например, открыть какую-нибудь страницу сайта, только не под админом), можно права папки wp-content 777 поменять обратно на 755, а для поддиректории кэша “wp-content/cache/hyper-cache/” сделать права 777, чтоб плагин мог в нее записывать кэшируемые страницы, которые будут сохранятся в файлах вида (можете посмотреть содержимое кэша в диспетчере файлов на сервере хостинга: открывая новые страницы, для каждой будет создаваться такой файл):

ef74d6fd23a4de3c5b16207d04f37078.dat

Настройки Плагина Hyper Cache

Настраивается плагин как обычно в админке (меню “Настройки” -> “Hyper Cache”). Я тут ничего не менял – все оставил по-умолчанию, так что не буду подробно останавливаться на данном пункте. Отмечу только, что нажав кнопку “Clear cache”, Вы удалите все содержимое кэша (можете проверить – ни одного *.dat файла в директории кэша не останется). Также здесь указано текущее количество страниц в кэше (пункт “Files in cache (valid and expired)”)


Проверка Работоспособности Плагина

Лучше более подробно напишу, как проверить, что плагин функционирует должным образом. Один из способов я уже описал выше – смотреть, как изменяется содержимое директории кэша:

wp-content/cache/hyper-cache/

При открытии страниц сайта (не под админом, поскольку если Вы авторизуетесь как администратор, для Вас будут генерироваться актуальные веб страницы, и работу плагина Вы не увидете) в этой директории будут создаваться файлы *.dat, каждый из которых является кэшированной копией одно из страниц. Но есть и более простой и быстрый способ, при котором нет необходимости заходить в диспетчер файлов на хостинге. Просто откройте одну из страниц (еще раз подчеркну – без авторизации в качестве админа, если уже авторизовались, надо сделать “лог аут” или использовать другой браузер), после чего просмотрите исходный код этой страницы. Если она извлечена из кэша, то в самом низу будет комментарий наподобие:

<!– hyper cache: 1b7e9b9b714b0b83a6f28ad4f7541abf 10-01-23 06:09:45 –>

Замечание: При переносе сайта с локального компа на хостинг, или с одного хостинга на другой необходимо проверять, не перестал ли работать плагин. Это связано с тем, что после переноса сайта, пути к директориям меняются, а плагин продолжает пытаться записывать и считывать страницы из кэша по старым путям. В этом случае достаточно зайти в найтроки плагина и нажать “Clear cache”, после чего плагин перенастроится на новый путь к директории кэша. (Хотя точно не знаю, мне этот способ помог, но из других источников слышал, что необходимо отключить и заново активировать плагин)


Преимущества Кэширования

Итак, про установку и настройку плагина вроде бы написал, теперь главное: что же дает кэширование страниц с помощью плагина Hyper Cache? В начале я упоминал, что он решает две задачи: ускорение работы сайта и снижение нагрузки на хостинг-сервер, на котором “живет” сайт. Это и в самом деле так. Действительно,

  • во-первых, загрузка страниц из кэша осуществляется гораздо быстрее, поскольку кэшированная страница – есть ни что иное, как готовый html код этой страницы, т.е. уже обработанный php интерпретатором, не содержащий запросов к базе данных движка, короче говоря, чистый HTML. Поэтому время на вычисления и запросы к базе MySQL не тратится. После установки плагина можете сравнить время открытия генерируемой страницы и кэшированной страницы.
  • Ну и во-вторых, снижение нагрузки на сервер происходит по тем же причинам: при извлечении готовой веб страницы из кэша, серверу нет необходимости выполнять php код, делать запросы к базе данных для извлечения информации, необходимой, чтоб сгенерировать страницу.

Так что данный плагин является просто спасением для “тяжелых” проектов с большой посещаемостью: без кэширования все процессорное время сервера уходило бы на обработку генерации веб страниц.

Конечно, есть и небольшой минус: пользователь, открывающий одну из страниц вашего ресурса, видит не генерируемую версию (т.е. текущую страницу), а страницу из кэша. Если данная страница была изменена, то посетитель этого не заметит. Но этот минус можно не принимать во внимание. Во-первых, полагаю, Вы не вносите изменения в страницы, скажем, со статьями, каждую минуту, во-вторых у плагина есть настройка:

Cached pages timeout (minutes)

Данный параметр определяет таймаут, после которого кэшированная страница считается устаревшей и будет регенерирована заново, как только кто-нибудь ее откроет. У меня стоит значение по умолчанию: 1440 минут (т.е. сутки). Подогнав этот параметр, Вы сведете к минимуму влияние кэширования на взаимодействие пользователей с вашим сайтом.

Спасибо за внимание и до новых встреч на страницах сайта okITgo.ru.

Отзывов (18) на «Hyper Cache»

  1. Евгений пишет:

    Вроде бы сделал всё правильно, страницы кэшируются, но проверочной строки в конце кода страницы нет. Беру УРЛ прямо из папки cache, проверяю, а строки нет. В чём дело, не пойму.

    • Николай пишет:

      А разлогинились с админки? Для администратора плагин не срабатывает – и генерируется актуальная страница. Можете попробовать открыть другим браузером.

      • Евгений пишет:

        Разлогинился и заходил со всех возможных браузеров, но результат один и тот же, проверочной строки нет. Однако страницы кэшируются, постоянно около 200 в папке кэша.
        Значит ли это, что плагин работает, несмотря на отсутствие проверочной строки?

        • Николай пишет:

          Попробуйте в админке зайти в настройки – Hyper Cache – нажать clear cache. Все файлы *.dat в /wp-content/cache/hyper-cache/ должны удалиться, потом разлогиньтесь, пооткрывайте страницы сайта и проверьте, генерируются ли кэшированные копии *.dat. Еще способ проверки – залогиниться в одном браузере и открыть какой-либо пост в другом, поменять текст этого поста в админке (в первом браузере), потом обновить страницу во втором браузере – если изменений не будет – значит возвращена кэшированная копия, т.е. кэш работает.

          • Евгений пишет:

            Спасибо, буду пробовать.

          • Евгений пишет:

            Уже крыша едет от этого плагина. Удалил файлы в настройках Hyper Cache, разлогинился, начал открывать страницы, файлы в папке стали появляться. Я сразу открыл первые, но это оказались не те страницы, которые открывал я, а видимо, те, которые открывались посетителями. Дальше, по второму предложенному Вами варианту: после изменения текста в одном браузере, такие же изменения имеются и при обновлении страницы в другом. Получается, что плагин не работает? Но страницы то в папку генерируются!!! Проверочной строки по прежнему нигде нет. Уже не знаю, что и думать. Написал на несколько форумов – везде тишина! Как будто никто не сталкивался с такой проблемой, или просто не знают.

          • Николай пишет:

            Если файлы *.dat генерируются – значит плагин все-таки создает кэшированные копии. Если у Вас во всех браузерах возвращаются актуальные страницы (не копии) – возможно вы когда заходили в админку, указали “запомнить”. Помнится, было такое, что даже Log Out не помогал. Если есть возможность, посмотрите какую-нибудь страницу сайта с другого компа, или с другой операционки (если у Вас их установлено несколько), вообщем где вы ни разу не заходили в админку – т.е. Вы посетите сайт как "сторонний" пользователь. И просмотрите исходный код на наличие в конце строки <!– hyper cache: имя_файла_кэш_копии дата время –>

  2. Евгений пишет:

    В админке я всегда ввожу пароль вручную, то есть никогда не давал данные для входа запоминать браузеру. Сейчас попросил постороннего человека посмотреть код с другого компа: строки нет! Вчера полностью удалил плагин Hyper Cache, потом скачал с сайта разработчика и установил снова, настройки по умолчанию. Результат тот же. Поиски решения проблемы продолжаются.

    • Олег пишет:

      Точно такая же проблема. На одном сайте файлы в папку кэша добавляются но проверочной строки нет. Вы как-то решили данную проблему?

      • Николай пишет:

        Вероятно в более новой версии плагина что-либо изменилось. Вообще эта “проверочная” строка в конце кэшированной страницы выводится далеко не всегда. Подробности можете посмотреть в коде соответствующего файла плагина cache.php, функция, которая добаляет строчку <!– hyper cache … называется hyper_cache_callback. Из тела этой функции видно, что в ряде случаев до добавления этой строки в конец дело так и не доходит.

        • Олег пишет:

          У меня такое ощущение, что файлы создаются, но не отдаются. На остальных сайтах использую разные плагины, в основном Hyper Cache, так там, например, даже число просмотров поста сразу не меняется, нужно удалить кэш, а на этом нет разницы, что с плагином, что без него. Ставил W3 Total Cache и WP Super Cash, строка появляется, но время в ней меняется при каждом обновлении, т.е. создание новой кэшированой страницы через несколько секунд (2013-12-20 14:34:51 by W3 Total Cache –> и 2013-12-20 14:35:17 by W3 Total Cache –>)

          • Николай пишет:

            Да если время каждый раз меняется – определенно что то не так – действительно получается каждый раз заново страница создается, а не берется из кэша – может с правами доступа что не так? Хотя не отдаваться кэшированные страницы могут только если не установлены права на чтение для каталога с кэш-страницами.

  3. Максим пишет:

    Я обновил плагин Hyper Cache и он перестал работать. Что только не делал, чтобы его завести, ничего не помогает. Ошибок никаких не выдаёт в админке. Второй день бьюсь над этой проблемой.

    • Николай пишет:

      А какой версии плагин на данный момент? И сам wordpress? При небольшой посещаемости если плагин кэширования перестает работать – не сильно смертельно, а при существенной – могут начать с хостинга предъявлять претензии, что сайт оказывает чрезмерную нагрузку. Перед обновлением желательно делать бэкап сайта, чтоб можно было откатиться в крайнем случае. Еще вариант, если обновили чисто плагин – переустановить на прежнюю версию и ждать когда выйдет более новая версия и смотреть с какими версиями движка она совместима перед обновлением.

      • Максим пишет:

        WP 3.4, плагин Hyper Cache последняя версия. Посещалка в среднем 350 в сутки. Сейчас поставил Hyper Cache Extended, та же петрушка. Папку кэш спокойно создаёт, а кешированных страниц в ней нет.
        Как только не играюсь с этими плагинами, а заставить работать не могу.

        • Николай пишет:

          Права на запись установили на директорию кэша? Иначе плагин не сможет осуществлять запись в эту директорию, соответственно файлы *.dat (кэшированные страницы) не будут создаваться.

  4. Александр пишет:

    Добрый день. Использую WordPress 4.1 и последнюю версию плагина на данный момент 3.2.2. Пошагово сделал все настройки, добавил строку в файл wp-config.php, активировал плагин и кэш в нём, настроил права доступа через панели управления хостинга (на директорию wp-content 755 и на директорию wp-content/cache/hyper-cache/ 777). Но файлы .dat и строка в коде страницы <!– hyper cache: отсутствуют. Самое интересное, что директории wp-content/cache/hyper-cache/ создаются папки с названиями страниц, например общая папка с названием сайта, в ней папки с названиями страниц и файлом index.html в каждой, но нигде нет фалов .dat. При внесении изменений на странице, проверяю в дургом браузере без админ прав данную страницу – все изменения видны, что означает отсутствие кэша на сайте. Подскажите, как быть, тем более, что google серьёзно взялся за него и сжатие фалов. Перепробовал кучу плагинов для кэша, добавлял инструкции в файл .htaccess – ничего не помогает.

    • Николай пишет:

      Добрый день! Рекомендую использовать плагин WP Super Cache, работает не хуже гипер кэша, но настраивать гораздо проще.