В WordPress’е есть один замечательный плагин — WP Super Cache. Нужен для того, чтобы снизить нагрузку на сервер, когда сайт посещает сразу много народу. Особенно актуально на виртуальных серверах VDS (VPS), которые при ее превышении могут надорваться и повиснуть. Впрочем, на виртуальном хостинге, если хостер ограничивает нагрузку вырубая ваш сайт на несколько минут при ее превышении, плагин тоже весьма полезен.
При настройке вам мягко рекомендуют кешировать с использованием mod_rewrite.
Использование mod_rewrite поможет сделать работу блога быстрее, чем PHP (хотя и этот вариант тоже не такой медленный). Этот режим проще и удобнее, но начинающему пользователю лучше использовать кэширование PHP.
И это разумный выбор.
Однако с mod_rewrite у заказчика обнаружилась довольно досадная проблема.
Почему заказчик пытался понять кто из нас дурак
Случилась забавная ситуация. Сайт стоит на VDS’е (операционка CentOS). Система управления — WordPress. Для кеширования поставлен плагин WP Super Cache (с использованием mod_rewrite), который ворчит на отсутствие поддержки mod_expires и mod_headers, но всё работает как часы, все довольны, а потому, пусть ворчит дальше.
Но вот, спустя пару недель, от заказчика приходит письмо:
На сайте проблема: открываешь сайт и в каталоге в разделах указано количество наименований (например, масла (26)), а когда заходишь в саму группу получается всего 13 наименований, остальные исчезают и это по всем подразделам....
Сайт является каталогом товаров, и такое несоответствие, естественно, не может не беспокоить.
Залезаю, проверяю, недоумеваю. У меня всё отображается как положено: заявленное в меню количество товара соответствует тому, что обнаруживается в каждом разделе каталога. Пишу клиенту стандартный набор тестов: мол чистим кеш браузера, жмем Ctrl-F5 и т.д. Однако, проблема не исчезла. Странно.
Иду в админку и нажимаю кнопочку «Удалить весь кэш». Есть такая кнопочка в верхнем админ-баре, если у тебя установлен WP Super Cache. И снова у клиента та же непонятка.
Проверяю у себя в другом браузере. Бинго! Вот она проблема! В полный рост. А всё потому, что я на сайт захожу с авторизацией, и вот эта миленькая галочка, запрещающая кешировать сайт при показе авторизованным пользователям, сыграла с нами шутку.
Ладно. Поиграли и хватит. Лезу исправлять ситуацию с mod_expires и mod_headers. Выходит не зря ворчал плагин.
Включаю mod_expires и mod_headers в CentOS
Итак. Сначала захожу в Putty и запускаю Миднайт Коммандер (mc).
Лезу в папку /etc/httpd/conf
Открываю для редактирования (F4) файл httpd.conf
С помощью поиска (F7) по запросу «mod_expires» нахожу строчку кода и удаляю в самом ее начале значок комментария «#».
То же самое проделываю со строчкой, найденной по запросу «mod_headers».
Сохраняю конфиг (F2) и выхожу из MC (F10).
Перезапускаю Appache командой /etc/init.d/httpd restart
Готово.
Проверяю в соседнем браузере (где я не авторизован). Отлично!
Пишу клиенту. Всё работает.
Ставлю пометку и заношу рецепт в блог, чтобы не потерять.
Дело сделано. Можно налить себе чаю или кофе в качестве награды.
Напишите комментарий