Почему изменения в PHP-скриптах отображаются с большой задержкой?

Часто начинающие WordPress-разработчики сталкиваются с тем, что при сохранении файлов PHP по протоколу FTP их изменения не сразу вступают в силу, а лишь через какое-то время.

Причины задержки применения изменений

По большей части такое неудобство возникает из-за использования механизмов кэширования. Закэшированные данные могут содержаться как в браузере, так и на самом сайте или хостинге.

Как избавится от задержек?

Обычно на стадии разработки и тестирования веб-ресурса программист заботится об отключении какого-либо кэширования для своего сайта, обезопасив себя от подобных ситуаций. Но часто бывает необходимо на “живом” сайте что-либо изменить или добавить новую функцию. Для этого необходимо проверять, какое-именно кэширование создает задержку отображения сделанных изменений.

Кэш браузера

Во-первых, необходимо проверить, не мешает ли разработке кэш Вашего браузера. Если комбинация клавиш [Ctrl]+[F5] не решает ситуацию, то в таком случае можно воспользоваться стандартными инструментами и попросту очистить все закэшированные им данные.

Кэш WordPress

Часто причиной задержек бывают именно данные страниц, закэшированные одним из соответствующих WordPress-плагинов (например, W3 Total Cache или WP Super Cache). В таком случае на время доработки и тестирования дополнение нужно отключить. Следует отметить, что некоторые из плагинов кэширования имеют настройку, позволяющую отключить кэширования для конкретного пользователя (например, в вышеуказанном плагине WP Super Cache).

Кэш на сервере

Если оба предыдущих способа не принесли никаких результатов в решении Вашей проблемы, то остается только одно — проверка серверного кэша. Следует отметить, что внезапное появление подобных задержек на сервере часто связано с изменением версии PHP. В таком случае это может означать, что новая версия PHP работает с активным механизмом кэширования байт-кода (OPCache). Для отключения механизма необходимо будет добавить специальную директиву в файл php.ini на сервере Вашего хостинга. Обычно это можно сделать через cPanel.

Для PHP 5.5, 5.6, 7.0, 7.1 необходимо добавить такую строку:

opcache.enable = Off

В старых версиях PHP 5.3 и 5.4 часто используется XCache, который отключается так:

xcache.cacher = Off

Для применения всех изменений необходимо перезагрузить сервер. Это, конечно, можно сделать исключительно на выделенных серверах. На обычном хостинге достаточно просто изменить версию PHP на какую-либо другую и сразу же вернуть назад старую. Следует отметить, что в завершении всех работ на сайте OPCache нужно снова включить, убрав добавленную строку из php.ini.

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров