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, загрузили файлы на сервер и…