WP Super Cache + CentOS: решаем проблему с mod_expires и mod_headers

В WordPress’е есть один замечательный плагин — WP Super Cache. Нужен для того, чтобы снизить нагрузку на сервер, когда сайт посещает сразу много народу. Особенно актуально на виртуальных серверах VDS (VPS), которые при ее превышении могут надорваться и повиснуть. Впрочем, на виртуальном хостинге, если хостер ограничивает нагрузку вырубая ваш сайт на несколько минут при ее превышении, плагин тоже весьма полезен.

 

При настройке вам мягко рекомендуют кешировать с использованием mod_rewrite.

Использование mod_rewrite поможет сделать работу блога быстрее, чем PHP (хотя и этот вариант тоже не такой медленный). Этот режим проще и удобнее, но начинающему пользователю лучше использовать кэширование PHP.

И это разумный выбор.

modrew

Однако с mod_rewrite у заказчика обнаружилась довольно досадная проблема.

Почему заказчик пытался понять кто из нас дурак

Случилась забавная ситуация. Сайт стоит на VDS’е (операционка CentOS). Система управления — WordPress. Для кеширования поставлен плагин WP Super Cache (с использованием mod_rewrite), который ворчит на отсутствие поддержки mod_expires и mod_headers, но всё работает как часы, все довольны, а потому, пусть ворчит дальше.

Но вот, спустя пару недель, от заказчика приходит письмо:

На сайте проблема: открываешь сайт и в каталоге в разделах указано количество наименований (например, масла (26)), а когда заходишь в саму группу получается всего 13 наименований, остальные исчезают и это по всем подразделам....

Сайт является каталогом товаров, и такое несоответствие, естественно, не может не беспокоить.

Залезаю, проверяю, недоумеваю. У меня всё отображается как положено: заявленное в меню количество товара соответствует тому, что обнаруживается в каждом разделе каталога. Пишу клиенту стандартный набор тестов: мол чистим кеш браузера, жмем Ctrl-F5 и т.д. Однако, проблема не исчезла. Странно.

Иду в админку и нажимаю кнопочку «Удалить весь кэш». Есть такая кнопочка в верхнем админ-баре, если у тебя установлен WP Super Cache. И снова у клиента та же непонятка.

Проверяю у себя в другом браузере. Бинго! Вот она проблема! В полный рост. А всё потому, что я на сайт захожу с авторизацией, и вот эта миленькая галочка, запрещающая кешировать сайт при показе авторизованным пользователям, сыграла с нами шутку.

modrew2

Ладно. Поиграли и хватит. Лезу исправлять ситуацию с mod_expires и mod_headers. Выходит не зря ворчал плагин.

Включаю mod_expires и mod_headers в CentOS

Итак. Сначала захожу в Putty и запускаю Миднайт Коммандер (mc).

Лезу в папку /etc/httpd/conf

modrew3

Открываю для редактирования (F4) файл httpd.conf

С помощью поиска (F7) по запросу «mod_expires» нахожу строчку кода и удаляю в самом ее начале значок комментария «#».

modrew4

То же самое проделываю со строчкой, найденной по запросу «mod_headers».

modrew5

Сохраняю конфиг (F2) и выхожу из MC (F10).

Перезапускаю Appache командой /etc/init.d/httpd restart

Готово.

Проверяю в соседнем браузере (где я не авторизован). Отлично!

Пишу клиенту. Всё работает.

Ставлю пометку и заношу рецепт в блог, чтобы не потерять.

modrew777

Дело сделано. Можно налить себе чаю или кофе в качестве награды.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *