Увеличьте скорость сайта, включив кэширование PHP-кода

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-скрипта в байт-код (скомпилированный) он сохраняется в общей памяти, а последующие запросы пропускают фазы синтаксического анализа и компиляции и используют байт-код, сохраненный в памяти, сокращая время выполнения скрипта.

script-cache-scheme

Настройка#

Конфигурация в основном выполняется путем редактирования специального файла с именем 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 есть специальный пункт меню, который открывает его.

wamp-php-ini

Кроме того, местоположение файла всегда можно узнать из информации PHP. Просто создайте файл phpinfo.php с содержанием <?php phpinfo(); ?>, скопируйте его в корневой каталог веб-сервера и запустите по адресу http://localhost/phpinfo.php. Расположение находится в разделе «Configuration File (php.ini) Path» первого блока (см. рисунок ниже).

phpinfo-php-ini-location

Установка настроек#

Все настройки находятся в разделе [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.

wamp-restart-apache

Проверка#

Очевидный способ проверить это – сравнить ответ сервера до и после включения кеша. Например, мы можем сделать это с помощью браузера Google Chrome.

Другой способ проверить работоспособность OpCache – создать файл opcache.php с содержимым <pre><?php print_r(opcache_get_status());?></pre>, скопировать его в корневой каталог веб-сервера и запустить по адресу http://localhost/opcache.php. Пример результата на картинке ниже.

opcache-configuration-check

Значение opcache_enabled должно быть 1. И ниже есть статистика PHP-скриптов, которая может просмотрена, такая как общее количество и подробная информация для каждого из них.

Если производительность сайта недостаточна, можно настроить WordPress с помощью плагинов кэша.

Добавить комментарий