
Что такое OPcache: ⚡ Ускоряем PHP и WordPress
Если вы когда-либо интересовались, как ускорить свой сайт на WordPress, вы, наверное, слышали о «кешировании». Обычно речь идет о кешировании страниц, когда плагин сохраняет готовую HTML-копию страницы. Но существует другой, более глубокий уровень кеширования, который работает до того, как эта HTML-страница вообще будет создана. Речь об OPcache.
По моему мнению, включенный и правильно настроенный OPcache — это самая эффективная оптимизация, которую вы можете сделать на стороне сервера. В этой статье я объясню, что это за технология, как она кардинально меняет работу PHP, и как ее настроить для вашего сайта.
Как работает PHP без OPcache? (медленный путь)
Когда пользователь заходит на ваш сайт, веб-сервер (например, Nginx) передает запрос PHP-обработчику, о котором мы говорили в статье о FastCGI и PHP-FPM. Чтобы выполнить index.php
, PHP делает 4 шага:
- Чтение: Читает
.php
файл с диска. - Лексический анализ: Разбирает текстовый код на «слова» (токены).
- Компиляция: Превращает эти токены в машинно-понятный «байт-код», который называется Opcodes (опкоды).
- Исполнение: Выполняет эти опкоды.
На сайте WordPress при каждой загрузке страницы загружаются десятки файлов (ядро, тема, плагины). И этот 4-этапный процесс происходит для каждого файла при каждом запросе. Это огромная, бесполезная работа.
Как работает PHP с включенным OPcache? (быстрый путь)
OPcache — это расширение PHP, которое сохраняет уже скомпилированные опкоды в общей памяти.
Когда поступает первый запрос:
- Чтение -> Анализ -> Компиляция -> Сохранение опкодов в память -> Исполнение.
Когда поступает второй и все последующие запросы:
- Получение опкодов из памяти -> Исполнение.
Мы пропускаем три из четырех шагов! 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.