Для использования Redis в PHP необходимо использовать дополнительные модули, либо такие php-библиотеки как Predis. С точки зрения скорости, более предпочтителен первый вариант. По моему опыту, производительность сервера PHP 7 в сочетании с модулем PhpRedis примерно в два раза выше по сравнению с использованием для этих целей библиотеки Predis.
Информацию по установке PHP 7 в Debian можно прочитать в этой статье. В данной записи речь пойдет о том как установить модуль PhpRedis для PHP 7. Мне не удалось найти PhpRedis в виде готового для использования в PHP 7 модуля. Поэтому, чтобы установить PhpRedis, придется собирать модуль из исходников. Для этого скачиваем исходники с репозитория GitHub:
cd /usr/src wget https://github.com/edtechd/phpredis/archive/php7.zip
Распаковываем содержимое архива:
unzip php7.zip
Переходим в содержимое директории:
cd /usr/src/phpredis-php7
Если вы хотите хранить в базе Redis такие файлы как изображения или сжатые GZIP страницы, вам необходима поддержка модулем сериализации. Для этого понадобится библиотека igbinary.h
.
mkdir /usr/src/phpredis-php7/ext cd /usr/src/phpredis-php7/ext wget https://github.com/igbinary/igbinary/archive/php7-dev-playground2.zip unzip php7-dev-playground2.zip mv igbinary-php7-dev-playground2 igbinary cd /usr/src/phpredis-php7
С помощью команды phpize
, необходимо выполнить подготовку окружения PHP-расширения:
phpize
В моем случае PHP 7 был установлен из исходников, поэтому необходимо указать полный путь:
/usr/local/php7/bin/phpize
Если вы не знаете расположение файла, его можно найти с помощью команды:
find -name phpize
Далее выполним команду:
./configure
В процессе я получил следующую ошибку:
Cannot find php-config. Please use --with-php-config=PATH
Пользуясь поиском, находим расположение файла php-config
. В моем случае, файл расположен по следующему пути /usr/local/php7/bin/php-config
. Затем повторно выполним команду:
./configure --with-php-config=/usr/local/php7/bin/php-config --enable-redis-igbinary
Выполним компиляцию модуля PhpRedis:
make
Далее необходимо вручную скопировать файл redis.so
в каталог модулей PHP. А затем указать путь к файлу. Следует отметить, что расположения файлов и директорий указанных ниже, может отличаться от ваших.
cp modules/redis.so /usr/local/php7/modules
Указываем путь к файлу модуля в файле php.ini
:
extension=/usr/local/php7/modules/redis.so
Чтобы применить настройки перезапусти PHP-FPM:
service php7-fpm restart