Вивчаємо WordPress

566
  • Кешування в WordPress і як при цьому працює блозі
  • Установка плагіна Hyper Cache на Вордпресс
  • Налаштування Hyper Cache для зниження навантаження
  • Здрастуйте, шановні читачі блогу . У цій статті я продовжу тему оптимізації WordPress (тут описано, як створити блог безкоштовно) з метою зниження навантаження на сервер хостингу. Це питання буде ставати для вас тим актуальніше, чим більше відвідувачів буде приходити на ваш блог.

    Вивчаємо WordPress

    У попередній статті були описані деякі способи зниження навантаження Вордпресс на хостинг за рахунок зменшення кількості запитів до бази даних WP. Але це, звичайно ж, лише напівзаходи, які потрібно виконувати обов’язково в комплексі з іншими способами.

    Способів оптимізації дуже багато і про всіх я буду детально розповідати в цій серії статей. Сьогодні ми розглянемо один з найбільш дієвих з них, а саме кешування. Спочатку потрібно визначитися з тим, що ж це таке і навіщо його потрібно використовувати. Для початку розглянемо роботу блогу на WordPress без кеша.

    Кешування в WordPress і як при цьому працює блозі

    Вся справа в тому, що браузери працюють тільки з вебстраницами в форматі HTML (читайте про мову гіпертекстової розмітки) і геть не розуміють мову PHP, на якому, власне, і написаний даний движок. Тому Вордпресс, після того, як користувач звернеться до тієї чи іншої сторінці блогу, повинен встигнути сформувати цю сторінку спираючись на алгоритм, прописаний в її коді на мові PHP.

    У класичному статичному сайті (зараз таких залишилося дуже мало) всі веб-сторінки реально існують і знаходяться на сервері вашого хостингу. До них завжди можна звернутися, ввівши відповідний адресу в браузері, або навіть фізично, через FTP завантажити яку-небудь сторінку з сервера собі на комп’ютер і відкрити подвійним клацанням по ній. Як кажуть, її можна помацати.

    У разі ж CMS ( читайте детальніше про движки сайтів), що базується на PHP і MySql, сторінки у форматі HTML генера безпосередньо на сервері хостингу, в момент звернення до них. Яким чином вони генера?

    Ну, у відповідності зі змістом запитуваної вебсторінки завантажується певний набір шаблонів (файлів) із вами в даний момент теми Вордпресс. Детальніше читайте тут про теми оформлення для блогу на WordPress (як вони влаштовані).

    Вивчаємо WordPressВивчаємо WordPress

    На основі цих шаблонів створюється графічне оформлення запитуваної веб-сторінки, а потім в область контенту, що завантажується з бази даних MySql, наприклад, текст статті. В область сайдбара так само можуть завантажувати дані з бази даних MySQL, якщо ви використовуєте висновок в ньому будь-якої інформації штатними засобами WordPress або за допомогою плагінів.

    Як ви вже, напевно, помітили, такий спосіб формування вебсторінок для браузера приховує в собі деяку проблему, яка особливо гостро може постати при великій кількості відвідувачів на блозі. Код файлів, написаних на PHP, інтерпретується в HTML-сторінку на льоту.

    Якщо запитів до бази даних на створення сторінок буде дуже багато (при високій відвідуваності блогу), це може суттєво навантажити хостинг. Навіть якщо припустити, що всі відвідувачі, що знаходяться в даний момент на вашому сайті, запросили одну і ту ж сторінку, вона все одно буде створюватися в вордпресс заново стільки разів, скільки відвідувачів натиснули по відповідній їй посиланням.

    Вихід із цієї ситуації полягає у використанні кеша. Як працює кешування в WordPress? Досить просто. Кожен раз, коли на вимогу відвідувача на сервері генерується сторінка у форматі HTML, то вона не тільки передається браузеру користувача натиснувшого по посиланню, але і зберігається у відповідній папці вашого сайту.

    І вже при наступному зверненні до цієї сторінці, вона не буде заново генерується, віднімаючи ресурс сервера (створюючи додаткове навантаження на його процесор і оперативну пам’ять), а буде передана браузеру користувача, запит цю сторінку, з тієї самої папки на вашому сайті, де зберігаються кешовані вебсторінки.

    Такий спосіб, коли кешується вся веб-сторінка, є найефективнішим, але не єдино можливим. Крім того, деякі динамічні елементи вашого блогу можуть при цьому не працювати.

    Деякі плагіни для Вордпресс кешують тільки запити до бази даних і, отже, дозволяють працювати динамічних елементів. Але все ж кешування вебсторінок цілком є, на мій погляд, найбільш ефективним способом.

    Герой сьогоднішньої публікації (плагін Hyper Cache) кешує сторінки цілком і зберігає їх HTML версії в своїй папці з кешем. Що примітно, кешування працює тільки для незареєстрованих відвідувачів вашого блогу. Оскільки у більшості блогерів реєстрація не використовується, то єдиним зареєстрованим користувачем в цьому випадку буде лише адміністратор, тобто ви.

    Для вас кешування працювати не буде і це дуже зручно. Наприклад, при внесенні змін в дизайн вам не треба буде кожен раз скидати кеш, щоб подивитись результати проведених змін. Хочу навести приклад ефективності використання цього розширення в WordPress.

    на початку свого існування базувався на халявному free hosting. Хостинг хороший, а для безкоштовного так і зовсім відмінний. Але одного разу у них полетів жорсткий диск, де розміщувалися бази даних всіх користувачів. І що примітно, мій блог продовжував спокійно працювати, бо його сторінки відкривались кеша і при цьому звернень до бази даних взагалі не було, т. до. вона була недоступна.

    Сайт на Joomla ( їх приклади) у якого теж було включено кешування, при цьому не працював, скаржачись на недоступність бази даних. Час життя HTML копій вебсторінок в кеші у мене стояло 1440 хвилин (на одну добу), і це виявилося більше, ніж час, протягом якого на хостингу була неактивною база даних (кілька годин).

    Ось такий от чудовий плагін для кешування у Вордпрес. Ну, думаю, що вже досить теорії і прийшла пора розглянути безпосередньо його установку і налаштування.

    Установка плагіна Hyper Cache на Вордпресс

    Скачати Hyper Cache ви можете з офіційної сторінки. Далі здійснюємо стандартні дії по установці. Розпакуйте архів hyper-cache.zip, використовуючи ftp-менеджер (тут можна завантажити кращий з них — Файлзилу) підключіться до вашого сайту і завантажте папку hyper-cache в папку з плагінами wp-content/plugins/ на віддаленому хості.

    Далі потрібно буде включити кешування в самому движку WordPress. Для цього нам потрібно відкрити на редагування файл конфігурації wp-config.php, який ви зможете знайти в кореневій папці на сервері вашого сайту. Вам потрібно буде додати в нього всього один рядок коду:

    define(‘WP_CACHE’, true);

    Вставити її можна в будь-яке місце рядка:

    /** Абсолютний шлях до директорії WordPress. */
    if ( !defined(‘ABSPATH’) )
    define(‘ABSPATH’, dirname(__FILE__) . ‘/’);

    Я, наприклад, вставив в область, де йде завдання параметрів для бази даних:

    /** Ім’я бази даних WordPress */
    define(‘WP_CACHE’, true);
    define(‘DB_NAME’, ‘wm1604_ox823’);

    Увійдіть в адмінку Вордпресс, оберіть вкладку «Плагіни»- «Inactive», знайдіть рядок з цим плагіном і активуйте його. Далі виберете з лівого меню Параметри -> Hyper Cache. Якщо у вікні з параметрами ніяких попереджувальних повідомлень не з’явилося, все готово до роботи.

    Якщо попередження з’явилися, то швидше за все допоможе виставлення прав доступу 777 на папку (читайте про це у статті про Файлзилу за наведеною трохи вище лінком) wp-content або папку wp-content/plugins/hyper-cache.

    Це потрібно для того, щоб даний плагін міг створити в WordPress папку для зберігання кешованих вебсторінок під назвою cache. Після того, як він її створить, ви можете повернути права доступу (тут розповідається про chmod — права доступу) на папку wp-content і папку wp-content/plugins/hyper-cache назад на 755, а вже папці cache, яка у мене знаходиться в wp-content/plugins/hyper-cache/cache, призначити права 777, щоб Hyper Cache мав можливість записувати в неї і прати HTML-файли з кешем.

    Налаштування Hyper Cache для зниження навантаження на сервер

    У першому полі налаштувань (в лівому меню вибрати Параметри — Хипер Кеш) під назвою «Файли в кеші» ви можете бачити, скільки вебсторінок вашого блогу в даний момент збережено в кеші.

    У цьому ж полі є дуже важлива кнопка «Clear cache», яка дозволяє скинути кеш, тобто видалити з відведеної для цієї мети папки всі наявні там файли. Ця кнопка вам може знадобитися в тому випадку, якщо ви, наприклад, внесли зміни в дизайн і хочете, щоб їх побачили відвідувачі якомога швидше. Бо в іншому випадку їм буде як і раніше доступна тільки кешовані версії вебсторінок.

    В області «Конфігурація» зосереджені основні налаштування.

    Вивчаємо WordPressВивчаємо WordPress

    У полі «Таймаут кешованих сторінок» ви можете виставити час життя кешу в WordPress. Протягом цього часу В папці cache будуть зберігатися HTML копії вебсторінок вашого блогу і всі користувачі, котрі їх, будуть отримувати саме ці копії.

    Але як тільки заданий в цьому полі час для якоїсь вебсторінки закінчиться, при черговому зверненні до неї відвідувача, вона буде відкрита вже не з кеша, а стандартним чином. При цьому вона буде заново закэширована плагіном і поміщено в папку cache. Якщо час життя поставити занадто маленьким, то Hyper Cache замість розвантаження сервера буде давати на нього підвищене навантаження, пов’язану з постійним домовленням кешированных вебсторінок.

    В полі «Режим анулювання кеша» задається спосіб очищення кешу при додаванні нових матеріалів на вашому блозі або оновлення вже існуючих статей (в тому числі і при додаванні коментарів). Якщо з випадаючого списку вибрати «Всі кешированные сторінки», то при додаванні нового запису або оновлення існуючої буде оновлено (очищений) весь кеш WordPress. При виборі «Нічого» кеш залишиться без змін.

    При виборі «Тільки змінені записи» будуть оновлюватися (вилучено з кешу) тільки файли кешу тих вебсторінок, які були змінені. Галочка в полі «При анулюванні запису також анулювати домашню сторінку, сторінку архівів і категорій» додасть вам зручності при роботі з блогом.

    У полі «Відключити кеш для коментаторів» можна поставити галочку. У цьому випадку користувачі зможуть бачити додані коментарі не чекаючи закінчення часу життя кешу для даної веб-сторінки. Це робить кешування в Вордпрес менш ефективним, але сам блог більш зручним. Галочка в полі «Кешування RSS» дозволить кешувати RSS стрічку.

    В області «Стиснення», поставивши галочку у наведених полях, ви можете активувати gzip стиснення сторінок знаходяться в кеші. Це дозволить трохи прискорити завантаження сторінок вашого блогу.

    Вивчаємо WordPressВивчаємо WordPress

    В області «Експертні налаштування» бажано буде поставити галочку в полі «URL з параметрами». У моєму випадку, після її установки навантаження блогу на хостинг зменшилася вдвічі.

    Вивчаємо WordPressВивчаємо WordPress

    Не знаю всієї таємниці, але незважаючи на заборону індексації robotx.txt урлов зі всякими там знаками питаннями і іншою нісенітницею що вміє генерувати Вордпресс, до таких сторінок хтось звертається (боти або ще хтось) і їх теж слід кешувати.

    У полі «Кешування Домашньої» ви можете поставити галочку для відключення кешування головної сторінки. Це може знадобитися, якщо вона інтенсивно оновлюється і включення її кешування може викликати додаткове навантаження за рахунок постійної перезапису файлу.

    Не забудьте зберегти зроблені зміни у вікні налаштувань плагіна Hyper Cache, натиснувши на кнопку «Оновлення». Для того, щоб перевірити чи працює кешування, вам треба буде зайти на свій блог не під зареєстрованим користувачем, а як звичайний відвідувач. Для цього його можна просто відкрити в браузері, відмінному від того, в якому ви працюєте як адміністратор.

    Відкрийте будь-яку сторінку блогу і подивіться її вихідний код. Для цього потрібно клацнути правою кнопкою миші по сторінці у вашому браузері і виберіть пункт контекстного меню «Вихідний код» (Opera), або «Вихідний код сторінки» (Firefox), або «Перегляд коду сторінки» (Google Chrome), або «Перегляд HTML-коду» (IE).

    Якщо ви побачите в самому низу вікна з вихідним кодом щось на зразок

    то це буде означати, що Hyper Cache працює і при наступному запиті ця сторінка буде відкриватися їм з кешу.

    Удачі вам! До зустрічей на сторінках блогу