Почему 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
...

IIS может обнаруживать подключаемый модуль redis в диспетчере расширений и заявляет, что он включен.

Эта проблема возникает в версии 7.4. Я пробовал это в версии 8.0, но все еще сталкиваюсь с теми же проблемами. PhpRedis 5.3.4 предоставляет DLL v7.4, все та же проблема без каких-либо зависимостей.

0
задан 6 August 2021 в 15:56
1 ответ

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

0
ответ дан 6 August 2021 в 19:26

Теги

Похожие вопросы