Antes de você ler:
- PHP não carrega extensõesnão responde minha pergunta porque não tenho Apache. Eu tenho IIS.
- Extensão MySQL do PHP não funcionanão responde à minha pergunta porque os arquivos têm as mesmas permissões que todos os outros arquivos DLL e não quebraram a herança.
- PHP no IIS não carrega extensão sqlsrvnão responde minha pergunta porque o item é para a versão mais recente.
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.