読む前に:
- PHP が拡張機能をロードしないApache を持っていないので、私の質問には答えられません。IIS を持っています。
- PHP の MySQL 拡張機能が動作しないファイルは他のすべての DLL ファイルと同じ権限を持ち、継承が壊れていないため、私の質問には答えません。
- IIS 上の PHP は sqlsrv 拡張機能をロードしませんアイテムは最新バージョンのものなので、私の質問には答えられません。
現在、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 バージョンを使用する必要があります。