SebWeo.com
Якщо ви коли-небудь цікавилися, як прискорити свій сайт на WordPress, ви, напевно, чули про “кешування”. Зазвичай мова йде про кешування сторінок, коли плагін зберігає готову HTML-копію сторінки. Але існує інший, глибший рівень кешування, який працює до того, як ця HTML-сторінка взагалі буде створена. Йдеться про OPcache.
На мою думку, увімкнений та правильно налаштований OPcache — це найефективніша оптимізація, яку ви можете зробити на стороні сервера. У цій статті я поясню, що це за технологія, як вона кардинально змінює роботу PHP, і як її налаштувати для вашого сайту.
Коли користувач заходить на ваш сайт, веб-сервер (наприклад, Apache / Nginx) передає запит PHP-обробнику, про який ми говорили в статті про FastCGI та PHP-FPM. Щоб виконати index.php, PHP виконує 4 кроки:
.php файл з диска.На сайті WordPress при кожному завантаженні сторінки завантажуються десятки файлів (ядро, тема, плагіни). І цей 4-етапний процес відбувається для кожного файлу при кожному запиті. Це величезна, марна робота.
OPcache — це розширення PHP, яке зберігає вже скомпільовані опкоди у спільній пам’яті.
Коли надходить перший запит:
Коли надходить другий і всі наступні запити:
Ми пропускаємо три з чотирьох кроків! PHP більше не витрачає час на читання файлів з диска та їх компіляцію. Він миттєво бере готовий “рецепт” з пам’яті. Це драматично знижує навантаження на процесор та прискорює час генерації сторінки (TTFB).
OPcache — це не те саме, що плагіни кешування сторінок (WP-Rocket, W3 Total Cache). Вони працюють на різних рівнях:
Вони не замінюють, а ідеально доповнюють один одного. Навіть коли вам потрібно скинути кеш сторінок, OPcache продовжує працювати, і сторінка згенерується набагато швидше. Для адмін-панелі WordPress, яка зазвичай не кешується, 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
Налаштування вище ідеально підходять для розробки (Development), оскільки opcache.revalidate_freq=5 змушує PHP перевіряти файли на зміни кожні 5 секунд. Ви можете редагувати код і одразу бачити зміни.
Для бойового сервера (Production), де код не змінюється щохвилини, я рекомендую встановити opcache.revalidate_freq=60 (або навіть вимкнути opcache.validate_timestamps=0). Це дасть максимальну продуктивність, оскільки PHP взагалі не буде звертатися до диска для перевірки файлів. Але пам’ятайте: після оновлення плагінів або теми вам доведеться перезапустити PHP-FPM, щоб скинути кеш.
Це дуже просто. Створіть у корені вашого сайту файл 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.
У нашій подорожі світом сокетів ми почали з "верхнього поверху" — WebSocket у браузері, потім…
У попередній статті ми говорили про WebSockets — технологію, що дозволяє створювати інтерактивні чати в…
Шкіра немовляти – тонка та ніжна. Ще не справляється із захистом організму від зовнішніх факторів.…
Уявіть собі телефонну розмову. Ви дзвоните другу, він піднімає слухавку, і ви можете говорити одночасно,…
Довгий час планшети сприймалися виключно як пристрої для споживання контенту: подивитися YouTube, погортати стрічку новин…
Ви внесли правки в CSS, виправили критичний баг у JavaScript, завантажили файли на сервер і…