Що таке OPcache: ⚡ Прискорюємо PHP та WordPress

Якщо ви коли-небудь цікавилися, як прискорити свій сайт на WordPress, ви, напевно, чули про “кешування”. Зазвичай мова йде про кешування сторінок, коли плагін зберігає готову HTML-копію сторінки. Але існує інший, глибший рівень кешування, який працює до того, як ця HTML-сторінка взагалі буде створена. Йдеться про OPcache.

На мою думку, увімкнений та правильно налаштований OPcache — це найефективніша оптимізація, яку ви можете зробити на стороні сервера. У цій статті я поясню, що це за технологія, як вона кардинально змінює роботу PHP, і як її налаштувати для вашого сайту.

 

Як працює PHP без OPcache? (повільний шлях)

Коли користувач заходить на ваш сайт, веб-сервер (наприклад, Nginx) передає запит PHP-обробнику, про який ми говорили в статті про FastCGI та PHP-FPM. Щоб виконати index.php, PHP виконує 4 кроки:

  1. Читання: Читає .php файл з диска.
  2. Лексичний аналіз: Розбирає текстовий код на “слова” (токени).
  3. Компіляція: Перетворює ці токени на машинно-зрозумілий “байт-код”, який називається Opcodes (опкоди).
  4. Виконання: Виконує ці опкоди.

На сайті WordPress при кожному завантаженні сторінки завантажуються десятки файлів (ядро, тема, плагіни). І цей 4-етапний процес відбувається для кожного файлу при кожному запиті. Це величезна, марна робота.

 

Як працює PHP з увімкненим OPcache? (швидкий шлях)

OPcache — це розширення PHP, яке зберігає вже скомпільовані опкоди у спільній пам’яті.

Коли надходить перший запит:

  1. Читання -> Аналіз -> Компіляція -> Збереження опкодів у пам’ять -> Виконання.

Коли надходить другий і всі наступні запити:

  1. Отримання опкодів з пам’яті -> Виконання.

Ми пропускаємо три з чотирьох кроків! PHP більше не витрачає час на читання файлів з диска та їх компіляцію. Він миттєво бере готовий “рецепт” з пам’яті. Це драматично знижує навантаження на процесор та прискорює час генерації сторінки (TTFB).

 

Чому OPcache — це “маст-хев” для WordPress?

OPcache — це не те саме, що плагіни кешування сторінок (WP-Rocket, W3 Total Cache). Вони працюють на різних рівнях:

  • OPcache: Прискорює генерацію сторінки (роботу самого PHP).
  • Кеш сторінок: Зберігає вже згенеровану HTML-сторінку.

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

  • 🚀 Значно прискорює роботу CMS (WordPress, Joomla, Drupal).
  • 📉 Знижує навантаження на CPU вашого VPS.
  • ⚡ Покращує показник TTFB, що є важливим для SEO.

 

Практика: як налаштувати OPcache в php.ini

У більшості сучасних версій PHP, OPcache вже вбудований та увімкнений за замовчуванням. Але його налаштування “з коробки” не завжди оптимальні. Нам потрібно знайти наш файл php.ini. (Якщо ви не знаєте, де він, згадайте нашу статтю про встановлення PHP).

Відкрийте php.ini та знайдіть секцію [opcache]. Ось рекомендовані налаштування, які я використовую:

; Вмикаємо OPcache
opcache.enable=1
; Вмикаємо OPcache для консольних скриптів
opcache.enable_cli=1
; Виділяємо 128 МБ пам'яті під кеш опкодів
opcache.memory_consumption=128
; Скільки файлів можемо зберігати в кеші (підберіть під свій проєкт)
opcache.max_accelerated_files=10000
; Вмикаємо перевірку актуальності файлів
opcache.validate_timestamps=1
; Як часто перевіряти файли на зміни (в секундах)
opcache.revalidate_freq=5

 

Важливо: налаштування для Production vs Development

Налаштування вище ідеально підходять для розробки (Development), оскільки opcache.revalidate_freq=5 змушує PHP перевіряти файли на зміни кожні 5 секунд. Ви можете редагувати код і одразу бачити зміни.

Для бойового сервера (Production), де код не змінюється щохвилини, я рекомендую встановити opcache.revalidate_freq=60 (або навіть вимкнути opcache.validate_timestamps=0). Це дасть максимальну продуктивність, оскільки PHP взагалі не буде звертатися до диска для перевірки файлів. Але пам’ятайте: після оновлення плагінів або теми вам доведеться перезапустити PHP-FPM, щоб скинути кеш.

 

Як перевірити, що OPcache працює?

Це дуже просто. Створіть у корені вашого сайту файл info.php з таким вмістом:

<?php
phpinfo();
?>

Відкрийте цей файл у браузері (https://your-site.com/info.php) і натисніть Ctrl+F, щоб знайти “OPcache”. Ви повинні побачити цілий блок, присвячений цьому розширенню. Головний рядок — opcache.enable, який має стояти в позиції “On“. Та/або значення “Up and Running” повинно бути для рядка “Opcode Caching“.

Ви також побачите статистику: кількість “hits” (влучань у кеш) та “misses” (промахів). На робочому сайті відсоток влучань має бути дуже високим (99%+).

Важливо: Не забудьте видалити файл info.php після перевірки, оскільки він розкриває багато інформації про ваш сервер.

 

Висновок: безкоштовне прискорення, яке вже у вас є

На мою думку, запускати WordPress-сайт без увімкненого OPcache у 2025 році — це просто злочин проти продуктивності. Це вбудований у PHP механізм, який не коштує вам нічого, але дає миттєвий та суттєвий приріст швидкості.

Перевірте налаштування свого сервера. Переконайтеся, що OPcache не просто увімкнений, а оптимально налаштований. Це той самий “легкий” тюнінг, який перетворює ваш сайт із просто робочого на справді швидкий.

 

Додаткове покращення: використовувати ще й Varnish-кешування. Varnish бере оброблену OPcache сторінку, віддає її відвідувачу і зберігає копію у себе в кеші для наступних відвідувачів. Якщо готова сторінка є в кеші Varnish: він миттєво її віддає і все, далі запит не йде. Результат: відвідувачі отримують відповідь миттєво. Навантаження на веб-сервер, PHP та базу даних дорівнює нулю для закешованих сторінок. Детальніше про технологію у нашому огляді Varnish.

 

Recent Posts

Що таке XML: невидимий інструмент для вашого сайту та SEO 📄

Коли ми говоримо про веб-розробку, перше, що спадає на думку — це HTML та CSS.…

1 день ago

Що таке якісний контент 📝 і як його розпізнати?

У світі SEO є фраза, яку повторюють так часто, що вона вже стала кліше: "Content…

2 дні ago

Як зареєструвати торгову марку в Україні ⚖️ | Покрокова інструкція

Створення бізнесу — це як народження дитини. Ви вкладаєте в нього душу, час та гроші.…

3 дні ago

Що таке FastCGI та PHP-FPM 🚀 | Як працює сучасний PHP

Коли ви тільки починаєте працювати з PHP, здається, що все просто: ви пишете код, веб-сервер…

4 дні ago

Встановлення PHP 8.4 на Windows 💻 | Покрокова інструкція

Багато розробників-початківців на Windows починають свій шлях з пакетів типу XAMPP, WampServer або Laragon. Це…

5 днів ago

Як створити кастомну сторінку реєстрації WordPress — без плагінів

Коли ви встановлюєте WordPress, він люб'язно надає вам стандартну сторінку реєстрації за адресою wp-login.php?action=register. Вона…

2 тижні ago