Warum erkennt IIS PHP PhpRedis nicht, wenn es vorhanden ist und korrekt hinzugefügt wurde?

Warum erkennt IIS PHP PhpRedis nicht, wenn es vorhanden ist und korrekt hinzugefügt wurde?

Bevor Sie lesen:

Ich habe derzeit ein PHP-Skript, das einfach Redis hinzufügt (mit PhpRedis).

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

Dies erzeugt eine Meldung „500 Internal Server Error“. Bei der Überprüfung der Protokolle von PHP 7.4 x64obwohl wir uns hier befinden, beim Laden der Seite wird der Fehler ausgelöst:

[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

Es wird nicht an der falschen Stelle gesucht oder nicht hinzugefügt, weil diese Einträge in php.ini:

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

IISdürfenerkennt das Redis-Plugin im Erweiterungsmanager und gibt an, dass es aktiviert ist.

Dieses Problem tritt in v7.4 auf. Ich habe dies in v8.0 versucht und habe immer noch dieselben Probleme. PhpRedis 5.3.4 bietet eine v7.4-DLL, immer noch dasselbe Problem, ohne dass Abhängigkeiten bekannt sind.

Antwort1

Problem behoben. Meine kompilierte Version von PHP unterstützte keine Threadsicherheitsfunktionen, daher muss ich entweder eine Version mit Threadsicherheit kompilieren oder die NTS-Version von PhpRedis verwenden.

verwandte Informationen