{"id":1364,"date":"2021-10-22T14:08:06","date_gmt":"2021-10-22T14:08:06","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=1364"},"modified":"2021-10-22T14:09:52","modified_gmt":"2021-10-22T14:09:52","slug":"redis-en-azure-app-linux-con-php-7-4","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/redis-en-azure-app-linux-con-php-7-4\/","title":{"rendered":"REDIS en Azure App Linux con PHP 7.4"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n a\u00f1adiremos el soporte REDIS a una App alojada en el entorno Cloud de Microsoft con PHP, deber\u00eda ser como cualquier otra extensi\u00f3n, pero en algunas versiones concretas aparecen errores en el proceso habitual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desde la consola SSH en KUDU para la Azure App ejecutamos el comando:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\npear config-show\n<\/pre><\/div>\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Para conocer el directorio de instalaci\u00f3n de las extensiones de PHP, lo necesitaremos m\u00e1s adelante:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nPHP extension directory        ext_dir          \/usr\/local\/lib\/php\/extensions\/no-debug-non-zts-20190902\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Comenzamos con la instalaci\u00f3n, creamos el directorio, copiamos el ficheros y a\u00f1adimos a al configuraci\u00f3n:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\npecl install redis\nmkdir \/home\/site\/ext\ncp \/home\/site\/ext\/usr \/usr\/local\/lib\/php\/extensions\/no-debug-non-zts-20190902\/redis.so \/home\/site\/ext\nmkdir -p \/home\/site\/ini\necho &quot;extension=\/home\/site\/ext\/redis.so&quot; &gt;&gt; \/home\/site\/ini\/extensions.ini\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Desde el portal de Azure a\u00f1adimos la nueva variable desde la configuraci\u00f3n del App Service:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nHP_INI_SCAN_DIR \/usr\/local\/etc\/php\/conf.d:\/home\/site\/ini\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"443\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/Azure\/app_linux_php_redis.jpg\" alt=\"\" class=\"wp-image-1366\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/Azure\/app_linux_php_redis.jpg 888w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/Azure\/app_linux_php_redis-300x150.jpg 300w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/Azure\/app_linux_php_redis-768x383.jpg 768w\" sizes=\"auto, (max-width: 888px) 100vw, 888px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero con la versi\u00f3n PHP 7.4 muestra error:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n...\ncreating libtool\nappending configuration tag &quot;CXX&quot; to libtool\nconfigure: patching config.h.in\nconfigure: creating .\/config.status\nconfig.status: creating config.h\nrunning: make\n\/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\n\/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\nr\/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\nmkdir .libs\n 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\ncal\/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\n\/php\/ext -DHAVE_CONFIG_H -g -O2 -c \/tmp\/pear\/temp\/redis\/redis.c  -fPIC -DPIC -o .libs\/redis.o\n\/tmp\/pear\/temp\/redis\/redis.c:22:10: fatal error: config.h: No such file or directory\n #include &quot;config.h&quot;\n          ^~~~~~~~~~\ncompilation terminated.\nmake: *** &#x5B;Makefile:192: redis.lo] Error 1\nERROR: `make&#039; failed\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Desde la comunidad de PHP hay un parche para poder corregir el error mientras tanto:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nmkdir -p \/tmp\/pear\/temp\ncd \/tmp\/pear\/temp\npecl bundle redis\ncd redis\nphpize\n.\/configure --with-php-config=\/usr\/local\/bin\/php-config --enable-redis-igbinary=no --enable-redis-lzf=no --enable-redis-zstd=no\nmake\nls -l \/tmp\/pear\/temp\/redis\/modules\nmkdir -p \/home\/site\/ext\ncp \/tmp\/pear\/temp\/redis\/modules\/redis.so \/home\/site\/ext\/redis.so\nmkdir -p \/home\/site\/ini\necho &quot;extension=\/home\/site\/ext\/redis.so&quot; &gt;&gt; \/home\/site\/ini\/extensions.ini\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>A continuaci\u00f3n a\u00f1adiremos el soporte REDIS a una App alojada en el entorno Cloud de Microsoft con PHP, deber\u00eda ser como cualquier otra extensi\u00f3n, pero en algunas versiones concretas aparecen errores en el proceso habitual. Desde la consola SSH en KUDU para la Azure App ejecutamos el comando:<\/p>\n","protected":false},"author":1,"featured_media":1367,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[155,813,541,75,812],"class_list":["post-1364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","tag-azure","tag-cache","tag-linux","tag-php","tag-redis"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=1364"}],"version-history":[{"count":0,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/1367"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=1364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=1364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=1364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}