Как установить Redis для 1С-Битрикс в панели ISP Manager?

Вопрос

Как внедрить Redis для сайта на 1С-Битрикс на VPS под управлением Ubuntu Server 22.04 с ISP Manager Lite 6.9 и PHP 8.1? Стандартное решение из справки не подошло, кеширование не работает.

Ответ

Создайте файл в корневом каталоге для просмотра детальной информации о версии PHP:

<?php phpinfo(); ?>

Найдите на странице значение флагов build_alias, host_alias, справа от ячейки Configure Command, их потребуется указать в команде для сборки расширений. Значение зависит от аппаратной платформы, например: x86_64-linux-gnu.

Установите зависимости для сборки:

apt install make
apt install build-essential

Установите и запустите Redis Server:

apt install redis-server
systemctl enable redis
systemctl start redis

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

Смените каталог для загрузки новых расширений, и выполните команды по очереди с правами root:

cd /usr/local/src 
wget https://github.com/igbinary/igbinary/archive/refs/tags/3.2.14.zip -O igbinary.zip
unzip -o ./igbinary.zip
cd igbinary-3.2.14/
/opt/php81/bin/phpize
./configure --host=x86_64-linux-gnu --with-php-config=/opt/php81/bin/php-config --build=x86_64-linux-gnu make && make install
echo 'extension=igbinary.so' > /opt/php81/etc/php.d/igbinary.ini

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

cd /usr/local/src 
wget https://github.com/phpredis/phpredis/archive/refs/tags/5.3.7.zip -O phpredis.zip
unzip -o ./phpredis.zip
cd phpredis-5.3.7/
/opt/php81/bin/phpize
./configure --host=x86_64-linux-gnu --with-php-config=/opt/php81/bin/php-config --enable-redis-igbinary
--build=x86_64-linux-gnu make && make install
echo 'extension=redis.so' > /opt/php81/etc/php.d/redis.ini

Проверка установки

Перезагрузите сервер:

systemctl restart apache2
systemctl restart php-fpm81.service
systemctl restart nginx.service

Проверьте наличие исполняемых файлов igbinary.so и redis.so в каталоге PHP:

cd /opt/php81/lib/php/modules/
/opt/php81/bin/php -m | grep redis

В ISP Manager, зайдите в раздел Настройки PHP, отметьте версию 8.1.27 и нажмите кнопку Управление расширениями. Если установка выполнена верно, модули будут подсвечены зеленым индикатором.

Подключение Redis в 1С-Битрикс

Для подключения кеширования Redis, добавьте в файл .settings.php этот код:

'cache' => array( 
    'value' => array(
       'type' => array(
       'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis',
       'extension' => 'redis'
      ),
     'redis' => array(
       'host' => '127.0.0.1',
       'port' => '6379',
     ),
    'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
  ),
),

В панели производительности 1С-Битрикс, убедитесь, что значение настройки хранения кеша установлено на cacheengineredis.

На сайте в режиме отладки, проверьте корректность кеширования SQL запросов. При повторном обращении к страницам, их число должно снижаться.