PHP кэш невероятно увеличивает скорость работы сайта. Например, если подготовка запроса занимает 1,2 секунды, после включения кэша это займет 0,6 секунды (увеличение примерно на 50%). В частности, это также существенно влияет на WordPress, поскольку он содержит много PHP-кода.
На некоторых сайтах, работающих, например, на WAMP (Apache, MySQL и PHP-пакет для Windows), кэш PHP-кода по умолчанию отключен, поэтому нам лучше проверить настройки.
Самый популярный способ сделать это – использовать OpCache – специальный модуль PHP, который выполняет кеширование кода. В PHP 5.5 и выше этот модуль уже интегрирован.
Как это работает#
OpCache обеспечивает более быстрое выполнение PHP благодаря кешированию и оптимизации скомпилированного кода. Это повышает производительность PHP, сохраняя байт-код предварительно скомпилированного скрипта в общей памяти. Каждый раз, когда запрашивается PHP-скрипт, PHP-скрипт будет анализироваться и компилироваться в байт-код, который затем выполняется в движке. Когда используется кэш байт-кода, после интерпретации и преобразования PHP-скрипта в байт-код (скомпилированный) он сохраняется в общей памяти, а последующие запросы пропускают фазы синтаксического анализа и компиляции и используют байт-код, сохраненный в памяти, сокращая время выполнения скрипта.
Настройка#
Конфигурация в основном выполняется путем редактирования специального файла с именем php.ini.
Нахождение файла конфигурации#
Расположение зависит от системы и может быть таким, как /etc/php5/apache2/php.ini или /etc/php5/fpm/php.ini, /usr/local/lib/php.ini в Unix-подобных системах и C:\wamp\bin\php\php5.5.12\php.ini в Windows.
В WAMP есть специальный пункт меню, который открывает его.
Кроме того, местоположение файла всегда можно узнать из информации PHP. Просто создайте файл phpinfo.php с содержанием <?php phpinfo(); ?>
, скопируйте его в корневой каталог веб-сервера и запустите по адресу http://localhost/phpinfo.php. Расположение находится в разделе «Configuration File (php.ini) Path» первого блока (см. рисунок ниже).
Установка настроек#
Все настройки находятся в разделе [opcache] php.ini.
Убедитесь, что основные настройки там есть:
[opcache]
zend_extension=<correct_path_to_php_opcache_module>
opcache.enable=1
Другие дополнительные настройки можно оставить без изменений со значениями по умолчанию. Но иногда требуется настроить их. Итак, вот краткое описание каждого важного с рекомендуемыми значениями.
- opcache.enable = 1
Включает или отключает кэш. Основная настройка.
- opcache.use_cwd = 1
Устраняет возможные коллизии между файлами с одинаковым базовым именем.
- opcache.validate_timestamps = 1
Включает проверку времени выполнения изменений файлов скриптов. Рекомендуется для использования, если сайт изменяется с помощью различных сценариев PHP. Например, установка плагинов в WordPress. Но если есть уверенность, что весь набор скриптов стабилен, этот параметр можно отключить, чтобы ускорить немного время выполнения.
- opcache.revalidate_freq = 2
Как часто проверять изменения скрипта, в секундах. 0 приведет к проверке на каждый запрос. Не работает, если opcache.validate_timestamps отключен.
- opcache.max_accelerated_files = 10000
Максимальное количество кэшируемых файлов. Большие значения рекомендуются для больших сайтов с огромным количеством скриптов и установленной памятью.
Актуальные параметры всегда можно проверить по адресуСтраница конфигурации источника OPcache и в списке всех параметров.
Перезапуск веб-сервиса#
Просто перезапустите веб-сервис (например, Apache) и PHP тоже будет перезапущен.
В WAMP это можно сделать, перезапустив Apache.
Проверка#
Очевидный способ проверить это – сравнить ответ сервера до и после включения кеша. Например, мы можем сделать это с помощью браузера Google Chrome.
Другой способ проверить работоспособность OpCache – создать файл opcache.php с содержимым <pre><?php print_r(opcache_get_status());?></pre>
, скопировать его в корневой каталог веб-сервера и запустить по адресу http://localhost/opcache.php. Пример результата на картинке ниже.
Значение opcache_enabled должно быть 1. И ниже есть статистика PHP-скриптов, которая может просмотрена, такая как общее количество и подробная информация для каждого из них.
Если производительность сайта недостаточна, можно настроить WordPress с помощью плагинов кэша.