Bevor Sie lesen:
- PHP lädt keine Erweiterungenbeantwortet meine Frage nicht, da ich kein Apache habe. Ich habe IIS.
- MySQL-Erweiterung von PHP funktioniert nichtbeantwortet meine Frage nicht, da die Dateien dieselben Berechtigungen wie alle anderen DLL-Dateien haben und die Vererbung nicht unterbrochen ist.
- PHP auf IIS lädt die SQLSRV-Erweiterung nichtbeantwortet meine Frage nicht, da der Artikel für die neuste Version ist.
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.