Antes de leer:
- PHP no carga extensionesNo responde a mi pregunta porque no tengo Apache. Tengo IIS.
- La extensión MySQL de PHP no funcionano responde a mi pregunta porque los archivos tienen los mismos permisos que todos los demás archivos DLL y no han roto la herencia.
- PHP en IIS no carga la extensión sqlsrvNo responde a mi pregunta porque el artículo es para la última versión.
Actualmente tengo un script PHP que simplemente agrega Redis (usando PhpRedis).
<?php
$redis = new Redis ();
?>
Esto crea un mensaje de "Error interno del servidor 500". Al inspeccionar los registros de PHP 7.4 x64,a pesar de estar ubicado aquí, al cargar la página se genera el error:
[06-Aug-2021 15:54:13 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'php_redis.dll' (tried: C:\Program Files\PHP\v7.4\ext\php_redis.dll (The specified module could not be found.), C:\Program Files\PHP\v7.4\ext\php_php_redis.dll.dll (The specified module could not be found.)) in Unknown on line 0
No se busca en el lugar equivocado ni se agrega debido a estas entradas en php.ini
:
[WebPIChanges]
extension_dir="C:\Program Files\PHP\v7.4\ext\"
...
[ExtensionList]
extension=php_redis.dll
...
IISpoderdetecta el complemento redis en el administrador de extensiones y indica que está habilitado.
Este problema ocurre en v7.4. Probé esto en la versión 8.0 y sigo enfrentando los mismos problemas. PhpRedis 5.3.4 proporciona una DLL v7.4, sigue siendo el mismo problema sin que se tengan en cuenta las dependencias.
Respuesta1
Problema resuelto. Mi versión compilada de PHP no admitía funciones de seguridad para subprocesos, por lo tanto, debo compilar una versión con seguridad para subprocesos o usar la versión NTS de PhpRedis.