Почему IIS PHP не распознает PhpRedis, хотя он существует и добавлен правильно?

Почему IIS PHP не распознает PhpRedis, хотя он существует и добавлен правильно?

До того как вы прочтете:

В настоящее время у меня есть PHP-скрипт, который просто добавляет Redis (используя PhpRedis).

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

Это создает сообщение "500 Internal Server Error". При проверке логов PHP 7.4 x64,несмотря на то, что находится здесь, загрузка страницы вызывает ошибку:

[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

Он не ищется в неправильном месте и не добавлен из-за этих записей в php.ini:

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

ИИСможетобнаруживает плагин Redis в менеджере расширений и сообщает, что он включен.

Эта проблема возникает в v7.4. Я пробовал это в v8.0, и у меня все еще возникают те же проблемы. PhpRedis 5.3.4 предоставляет DLL v7.4, все та же проблема без учета зависимостей.

решение1

Проблема решена. Моя скомпилированная версия PHP не поддерживает функции потокобезопасности, поэтому мне нужно либо скомпилировать версию с потокобезопасностью, либо использовать NTS-версию PhpRedis.

Связанный контент