Как очистить PHP Opcache?

Вы хотите очистить PHP Opcache? Это зависит от того, как вы используете PHP. Однако из этого поста вы узнаете, как очистить Opcache PHP.

Найдите метод PHP

Существует несколько способов запуска PHP. С каждым обновлением PHP становится лучше и предлагает все больше и больше возможностей. Существует способ запуска CGI, FastCGI, mod_php и метод PHP-FPM.

Если вы хотите очистить PHP, вам сначала нужно знать метод PHP; затем вы можете использовать подходящий способ очистки OPcache.

Однако, если вам нужен общий метод для очистки вашего Opcache, вы можете создать новый файл PHP с именем flush_cache.php в корне документа.

Flush_cache.php:

<?php
opcache_reset();

Всякий раз, когда вы захотите очистить Opcache, просто перейдите к файлу flush_cache.php. Файл вызовет ocache_reset() для всего Opcache.

Кеш сайта снова будет заполнен новым запросом PHP.

Следует иметь в виду, что URL-адрес следует вызывать так же, как вы открываете свой веб-сайт: HTTP или HTTPS.

И вам не придется беспокоиться о запущенном процессе, так как выполнение файла flush_cache.php не влияет на запущенные процессы.

Это общий метод, но если вы хотите найти более конкретный подход, продолжайте читать.

Метод CGI или FastCGI

Если вы используете PHP как CGI или FastCGI, нет смысла очищать OPcache.

Поскольку кэш уже очищается при каждом запросе, новый процесс php-cgi запускается с каждым запросом, когда PHP работает как CGI.

С другой стороны, если вы принудительно используете Opcache для модели CGI или FastCGI, это ухудшит общую производительность магазина.

Каждый запрос будет сохранять Opcache в процессе FastCGI, но этот кеш бесполезен, поскольку он уничтожит момент начала нового процесса. Это означает, что Opcache сохранен, но использовать его невозможно. Однако процесс съедает процессор.

Вот почему CGI не рекомендуется использовать для запуска PHP.

Метод командной строки

CLI чем-то похож на CGI, когда дело касается Opcache. Это повредит производительности сайта.

Прежде всего, в командной строке нет Opcache. Как только вы включите его, PHP попытается сохранить Opcache в памяти. Но тогда, как только команды CLI закончатся, кеш тоже умрет.

Однако, если вы хотите очистить opcache PHP в CLI, вам нужно только перезапустить команды PHP.

Просто нажмите CTRL+C, чтобы прервать выполнение команды, и запустите ее снова.

Метод mod_php

Вы можете перезагрузить или перезапустить веб-сервер Apache, чтобы выполнить сброс в метод Opcache — mod_php.

$ apachectl graceful
$ service httpd reload

Перезагрузка просто очистит Opcache в PHP, а перезапуск также выполнит аналогичную работу. Однако перезапуск приведет к уничтожению всех активных HTTP-соединений.

Метод PHP-FPM

Чтобы очистить PHP Opcache для метода PHP-FPM, вам необходимо отправить перезагрузку вашему демону PHP-FPM. Перезагрузка очистит Opcache, и когда поступит следующий запрос, он заставит его перестроить кеш.

$ service php-fpm reload

Вы можете очистить весь кеш всех веб-сайтов, перезагрузив один мастер. Один мастер сбросит Opcache мастера и очистит весь кеш.

Однако такие инструменты, как Cachetool, могут дать вам больше контроля над командной строкой. Инструмент кэширования подключится к вашему сокету PHP-FPM и отправит команды, аналогичные веб-серверу.

Для этого сначала загрузите phar для управления кешем.

$ curl -sO http://gordalina.github.io/cachetool/downloads/cachetool.phar

Затем используйте этот phar для отправки команд вашему демону PHP-FPM.

$ php cachetool.phar opcache:reset --fcgi=127.0.0.1:9000
$ php cachetool.phar opcache:reset --fcgi=/var/run/php5-fpm.sock

очистить php opcache

Краткое содержание

Метод запуска PHPКак очистить PHP Opcache?
Общий методСоздайте flash_cache.php в корне документа и просмотрите его.
Метод CGI или FastCGIКэш уже очищается при каждом запросе
Метод командной строкиПерезапустите команды PHP (CTRL+C).
mod_php МетодПерезагрузите или перезапустите веб-сервер Apache.
Метод PHP-FPMОтправьте перезагрузку вашему демону PHP-FPM.

Подведение итогов

Opcache — фантастический способ улучшить производительность сайта. Он хранит предварительно скомпилированный скрипт в общей памяти, поэтому PHP не нужно каждый раз загружать и анализировать скрипты.

Но иногда Opcache не обновляет обновленные файлы в кеше. Для этого вам необходимо очистить кеш, чтобы он мог сгенерировать обновленный кеш.

Это жизненно важно для магазинов электронной коммерции, использующих платформы на базе PHP.

Если на каком-либо этапе возникнут проблемы, оставьте это в комментарии.