1

Когда я делаю небольшие изменения на своем веб-сайте и загружаю их, обычно для отражения этих изменений обычно требуется несколько минут. Это начало происходить только после того, как я установил новую систему Debian через Google Compute Engine.

Я исключил, что у меня есть код, который его кэширует, но возможно ли, что PHP 5.5.28 или Debian могут кэшировать файлы? Я также проверил, чтобы убедиться, что это не браузер, и использовал опцию chrome, чтобы не кэшировать файлы в инструментах разработчика.

1 ответ1

2

Вы используете PHP 5.5.28, и, по моему опыту, любой, кто переходит с PHP 5.3 или 5.4 на PHP 5.5, должен знать о том, что новый встроенный OPcache (Operations Cache) включен по умолчанию.

Если вы когда-либо использовали APC (альтернативный кэш PHP), новый встроенный OPcache работает почти так же и хорошо подходит для производственных целей для сложного кода, но его включение по умолчанию может вас укусить, если вы привыкли загружать файлы и изменения появляются сразу.

Этот сайт хорошо объясняет, что такое OPcache и как его настроить. Но если вам пока не нужен OPcache, просто откройте свой PHP-ini-файл вот так; Я предпочитаю использовать nano но не стесняйтесь использовать любой текстовый редактор, который вам нравится:

sudo nano /etc/php5/apache2/php.ini

Ищите строку, которая гласит:

opcache.enable=1

И просто отключите его, изменив эту строку на:

;opcache.enable=0

Перезапустите Apache, и теперь PHP 5.5 не будет использовать OPcache. И, честно говоря, включение такого кэша должно быть вызовом системного администратора и его знаний о том, как работает код и как сервер реагирует.

Если ваш сайт на основе PHP достаточно легкий, OPcache может быть просто излишним, на самом деле не нужен и даже может помешать.

Но если вам нужен OPcache, но также необходимо регулярно обновлять PHP-файлы, возможно, будет полезна настройка значений конфигурации OPcache. Настройки по умолчанию примерно такие:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Ключевым моментом, который я вижу в этом конфиге, который может отключить ожидаемое обновление, является opcache.revalidate_freq:

Как часто проверять метки времени для обновлений в секундах. 0 приведет к проверке обновлений OPcache на каждый запрос.

По умолчанию 60 секунд - это хорошо, но мне кажется, что понижение opcache.revalidate_freq до 5 секунд может быть более удачным способом использования преимущества OPcache, но при этом все же имеет разумное окно проверки обновлений, поэтому вы не сможете быть запутанным простыми обновлениями файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .