
A continuación añadiremos el soporte REDIS a una App alojada en el entorno Cloud de Microsoft con PHP, debería ser como cualquier otra extensión, pero en algunas versiones concretas aparecen errores en el proceso habitual.
Desde la consola SSH en KUDU para la Azure App ejecutamos el comando:
1 | pear config-show |
Para conocer el directorio de instalación de las extensiones de PHP, lo necesitaremos más adelante:
1 | PHP extension directory ext_dir /usr/local/lib/php/extensions/no-debug-non-zts-20190902 |
Comenzamos con la instalación, creamos el directorio, copiamos el ficheros y añadimos a al configuración:
1 2 3 4 5 | pecl install redis mkdir /home/site/ext cp /home/site/ext/usr /usr/local/lib/php/extensions/no-debug-non-zts-20190902/redis .so /home/site/ext mkdir -p /home/site/ini echo "extension=/home/site/ext/redis.so" >> /home/site/ini/extensions .ini |
Desde el portal de Azure añadimos la nueva variable desde la configuración del App Service:
1 | HP_INI_SCAN_DIR /usr/local/etc/php/conf.d:/home/site/ini |

Pero con la versión PHP 7.4 muestra error:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ... creating libtool appending configuration tag "CXX" to libtool configure: patching config.h.in configure: creating ./config.status config.status: creating config.h running: make /bin/bash /tmp/pear/temp/pear-build-root8i3TOv/redis-5.3.4/libtool --mode=compile cc -I. -I/tmp/pear/temp/redis -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root8i3TOv/redis-5.3.4/include -I/tmp /pear/temp/pear-build-root8i3TOv/redis-5.3.4/main -I/tmp/pear/temp/redis -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/us r/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include/php/ext -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/redis/redis.c -o redis.lo mkdir .libs cc -I. -I/tmp/pear/temp/redis -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root8i3TOv/redis-5.3.4/include -I/tmp/pear/temp/pear-build-root8i3TOv/redis-5.3.4/main -I/tmp/pear/temp/redis -I/usr/lo cal/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include /php/ext -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/redis/redis.c -fPIC -DPIC -o .libs/redis.o /tmp/pear/temp/redis/redis.c:22:10: fatal error: config.h: No such file or directory #include "config.h" ^~~~~~~~~~ compilation terminated. make: *** [Makefile:192: redis.lo] Error 1 ERROR: `make' failed |
Desde la comunidad de PHP hay un parche para poder corregir el error mientras tanto:
1 2 3 4 5 6 7 8 9 10 11 12 | mkdir -p /tmp/pear/temp cd /tmp/pear/temp pecl bundle redis cd redis phpize . /configure --with-php-config= /usr/local/bin/php-config -- enable -redis-igbinary=no -- enable -redis-lzf=no -- enable -redis-zstd=no make ls -l /tmp/pear/temp/redis/modules mkdir -p /home/site/ext cp /tmp/pear/temp/redis/modules/redis .so /home/site/ext/redis .so mkdir -p /home/site/ini echo "extension=/home/site/ext/redis.so" >> /home/site/ini/extensions .ini |