Установить модуль PhpRedis для PHP 7

Дата: 12.11.2015Метки: ,

Для использования 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