Повышение производительности PHP с OPCache

Источник: «Boosting PHP performance with OPCache»
OPCache — надёжный инструмент, повышающий производительность PHP, делающий веб-приложения быстрее и эффективнее.

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

Установка расширения OPCache

Убедитесь, что OPCache установлен на сервере. Это можно проверить, просмотрев список всех установленных модулей для PHP:

php --modules

Если оно ещё не установлено, выполните команду установки расширения OPCache:

sudo apt install php8.x-opcache

Замените php8.x-opcache на соответствующую версию, которую используете, например php8.3-opcache.

Настройка расширения OPCache

Настройка OPCache через файл php.ini довольно проста. Начните с поиска файла php.ini, являющегося основным конфигурационным файлом для PHP. Расположение этого файла может зависеть от настроек сервера. Его расположение можно определить, выполнив команду:

php --ini

В нашем случае файл находится в следующем каталоге: /etc/php/8.3/cli/php.ini.

В качестве альтернативы, вместо редактирования файла php.ini, можно создать отдельный конфигурационный файл для настроек OPCache, что часто делается для упорядочивания конфигураций. Создайте новый файл с именем 10-opcache.ini (номер гарантирует, что он будет загружен в правильном порядке) в каталоге конфигурации PHP.

В нашем случае файл находится в следующей директории: /etc/php/8.3/cli/conf.d/10-opcache.ini

Вот пример, как должен выглядеть файл конфигурации OPCache.

[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.jit=off

Значения конфигурации — это параметры, управляющие работой расширения OPCache в PHP. Настройка таких параметров, как объем памяти, выделяемой OPCache, и частота проверок кэша, позволяет точно настроить его под конкретные нужды. Ниже приведено объяснение наиболее важных и часто используемых директив конфигурации OPCache:

Применение конфигурации OPCache

После внесения этих изменений необходимо перезапустить веб-сервер, чтобы новые настройки вступили в силу.

Для перезапуска веб-сервера Apache выполните:

sudo systemctl restart apache2

Для перезапуска веб-сервера Nginx с PHP-FPM выполните:

sudo systemctl restart php8.x-fpm
sudo systemctl restart nginx

Замените php8.x-fpm на соответствующую версию, которую используете, например php8.3-fpm.

Очистка OPCache

Чтобы очистить OPCache в PHP, можно воспользоваться одним из следующих методов:

Выберите метод, который лучше всего соответствует вашему рабочему процессу и требованиям.

Заключение

OPCache необходим всем, кто стремится повысить производительность PHP-приложений. Храня в памяти предварительно скомпилированный байткод скриптов, OPCache сокращает время выполнения и нагрузку на сервер, значительно повышая скорость и эффективность работы веб-приложений. Правильная настройка OPCache обеспечивает плавную работу приложения, лучший пользовательский опыт и надёжную среду для обработки трафика.

Дополнительные материалы

Предыдущая Статья

Как копировать папки через SSH

Следующая Статья

Базовое руководство по GitHub Actions