PhpRedis が存在し、正しく追加されているにもかかわらず、IIS PHP が PhpRedis を認識しないのはなぜですか?

PhpRedis が存在し、正しく追加されているにもかかわらず、IIS PHP が PhpRedis を認識しないのはなぜですか?

読む前に:

現在、Redis を追加するだけの PHP スクリプトがあります (PhpRedis を使用)。

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

これにより、「500 内部サーバーエラー」というメッセージが生成されます。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 プラグインを検出し、有効になっていることを通知します。

この問題は v7.4 で発生します。v8.0 でも試してみましたが、同じ問題が発生します。PhpRedis 5.3.4 は v7.4 DLL を提供しますが、依存関係が認識されず、同じ問題が発生します。

答え1

問題は解決しました。コンパイルした PHP のバージョンはスレッド セーフティ機能をサポートしていなかったため、スレッド セーフティを備えたバージョンをコンパイルするか、PhpRedis の NTS バージョンを使用する必要があります。

関連情報