Por que o IIS PHP não reconhece o PhpRedis quando ele existe e é adicionado corretamente?

Por que o IIS PHP não reconhece o PhpRedis quando ele existe e é adicionado corretamente?

Antes de você ler:

Atualmente tenho um script PHP que simplesmente adiciona Redis (usando PhpRedis).

<?php
    $redis = new Redis ();
?>

Isso cria uma mensagem "500 Internal Server Error". Ao inspecionar os logs do PHP 7.4 x64,apesar de estar localizado aqui, carregar a página aciona o erro:

[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

Não está pesquisando no lugar errado ou não foi adicionado por causa destas entradas em php.ini:

[WebPIChanges]
extension_dir="C:\Program Files\PHP\v7.4\ext\"
...
[ExtensionList]
extension=php_redis.dll
...

IISpodedetecta o plugin redis no gerenciador de extensão e afirma que ele está habilitado.

Esse problema ocorre na v7.4. Eu tentei isso na v8.0 e ainda enfrento os mesmos problemas. PhpRedis 5.3.4 fornece uma DLL v7.4, ainda com o mesmo problema, sem nenhuma dependência informada.

Responder1

Problema resolvido. Minha versão compilada do PHP não suporta recursos de segurança de thread, portanto devo compilar uma versão com segurança de thread ou usar a versão NTS do PhpRedis.

informação relacionada