Изменения в php-файлах не видны без перезагрузки apache

339
30 июня 2017, 08:20

здравствуйте, я установил на свой сервер OPcache (использую связку apache+nginx), после установки, добавил в конфиг пару строк (я взял их из рекомендаций в мануалах)

opcache.revalidate_freq=0
opcache.validate_timestamps=0 
opcache.max_accelerated_files=20000
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1

но дело в том, что теперь, когда я меняю что либо в php файлах, на сайте это никак не отражается, и помогает только перезагрузка апача

подскажите, это я что-то не так сделал, или так и должно быть?

Answer 1

Второй параметр в вашем конфиге opcache.validate_timestamps отключает проверку файлов на изменения. Поэтому после обновления файлов вы не видите изменений.
Если вы его включите (1), то вступает в работу первый параметр opcache.revalidate_freq, указывающий, как часто измеения будут проверяться (в секундах). Если указано значение 0, то проверка будет осуществляться при каждом запросе..

Возможно для сервера разработки включать OPCache смысла и нет. Что касается продакшен-сервера, то обновления кода здесь на так часты. Поэтому либо настройте указанные параметры нужным образом. Либо вручную очищайте кэш, используя функции opcache_reset() и opcache_invalidate(). Первая из них очищает кэш целиком, вторая для указанного файла (обновленного в вашем случае).
Загвоздка в том, что данные функции не получится выполнить из консоли, поэтому после обновления сайта из репозитория не получится просто дописать некий хук для обновления кэша, а придется на сайте выполнить некий скрипт, который их выполнит.

зы: на правильный ответ не претендует, OPCache не использовал. Прочитал доки, полученные знания изложил в ответ.

READ ALSO
Как в Phalcon реализовать коннект двух БД, чтоб при записи коннект был к одной, а при чтении к другой

Как в Phalcon реализовать коннект двух БД, чтоб при записи коннект был к одной, а при чтении к другой

Да, при работе с моделями можно использовать $this->setReadConnectionService('dbSlave') и $this->setWriteConnectionService('dbMaster'), но сложность возникает когда запросы идут...

201
Перемешивание блоков с данными из БД при каждом обновлении страницы

Перемешивание блоков с данными из БД при каждом обновлении страницы

Помогите, пожалуйста, сделать рандомное перемешивание блоков с данными из БД при каждом обновлении страницы

257
Нужна помощь с .htaccess и 301 редиректом

Нужна помощь с .htaccess и 301 редиректом

Перенес сайт на новый движок, Yii2 basicОт предыдущих урл пришлось отказаться

254