2015-12-14 4 views
6

У меня настроен мой сайт на новом хостинге (виртуальное облако), однако я смотрю на opcache, а scripts не используется, потому что a minutes or so удаляются из кеша.Opcache слишком быстро очищается

Так есть способ остановить его? или это нормальное поведение?

Большое спасибо.

+0

какие настройки opcache в вашем php.ini? – Clay

+0

Что такое значение "„opcache.max_accelerated_files“? Что произойдет, если вы установите„opcache.validate_timestamps = 0“? – Clay

+0

opcache.max_accelerated_files = 2000 –

ответ

0

Похоже, вам нужно определить validate_timestamps=0 в php.ini. Остерегайтесь этого - если вы загружаете какие-либо изменения в свои PHP-файлы, вам нужно будет перезапустить либо Apache (если вы используете mod_php5), либо PHP5-FPM, либо очистить opcache вручную.

Подробнее о том, как очистить opcache вручную, вам в основном нужно создать файл PHP с opcache_reset() и запустить его, но он должен находиться в том же SAPI, что и ваши другие файлы, то есть запускаться PHP5-FPM, если это что служит остальным вашим файлам. http://ihaveabackup.net/2013/10/19/invalidating-the-opcache-in-php-5-5/

2

На самом деле есть конфигурация. opcache.revalidate_freq=2, значение по умолчанию составляет 2 секунды, opcache будет пытаться проверять метки времени каждые 2 секунды, и если файлы будут изменены, он будет revalidate. Вы можете изменить значение, соответствующее вашим потребностям, или вы можете просто отключить отметку времени, используя этот conf opcache.validate_timestamps=0, но в этом случае каждый раз, когда вы развертываете код для производства, вы должны перезапустить php-fpm (если вы используете php-fpm) и веб-сервер

opcache.revalidate_freq=2 или любое целое значение

opcache.validate_timestamps=1 или opcache.validate_timestamps=0

+0

By используя 'opcache.validate_timestamps' до' 0', опция 'opcache.revalidate_freq' будет проигнорирована. –

Смежные вопросы