Aprende paso a paso cómo compilar la extensión phpredis (php_redis.dll) para PHP 8.4 en Windows usando Visual Studio 2022 y PHP SDK de forma segura y optimizada.


Introducción

Esta guía muestra cómo compilar la extensión phpredis para PHP 8.4 en entornos Windows utilizando PHP SDK y Visual Studio 2022. Al finalizar, obtendrás los binarios php_redis.dll en versiones Thread Safe (TS) y Non Thread Safe (NTS).

Requisitos previos

  • Windows 10/11 de 64 bits
  • Visual Studio 2022 (MSVC v17)
  • Git instalado y en PATH
  • PHP SDK 2.3.0 o posterior

1. Instalar PHP SDK


-- skip if u have installed php-sdk
git clone --depth 1 --branch php-sdk-2.3.0 https://github.com/php/php-sdk-binary-tools.git php-sdk
php-sdk\phpsdk-vs17-x64.bat
      

2. Obtener el código fuente de PHP 8.4 y phpredis


-- get 8.4 src
git clone --depth 1 --branch php-8.4.2 https://github.com/php/php-src.git
cd php-src
cd ext
git clone --depth 1 --branch 6.1.0 --recurse-submodules https://github.com/phpredis/phpredis.git
cd ..
..\php-sdk\bin\phpsdk_deps --update --branch 8.4
buildconf
      

3. Compilar versión Thread Safe (TS)


configure --enable-redis=shared --enable-redis-session --enable-redis-igbinary
nmake
      

El archivo generado se encuentra en:

php-src/x64/Release_TS/php_redis.dll

4. Compilar versión Non Thread Safe (NTS)


configure --enable-redis=shared --enable-redis-session --enable-redis-igbinary --disable-zts
nmake
      

El archivo generado se encuentra en:

php-src/x64/Release/php_redis.dll

5. Archivos finales

Los binarios compilados se pueden empaquetar así:

  • php_redis-6.1.0-8.4-nts-vs17-x64.zip
  • php_redis-6.1.0-8.4-ts-vs17-x64.zip

6. Conclusión

Ahora dispones de las versiones Thread Safe y Non Thread Safe de la extensión phpredis para PHP 8.4. Solo debes copiar el archivo php_redis.dll correspondiente a tu entorno en el directorio ext/ de PHP y habilitarlo en el php.ini:

; En php.ini
extension=php_redis.dll

Con esto, tu entorno PHP en Windows estará listo para conectar y manejar datos en Redis de forma nativa.