Что такое OPcache: ⚡ Ускоряем PHP и WordPress
Опубликовано

Что такое 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.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *