为什么PhpRedis存在并且正确添加后IIS PHP却无法识别?

为什么PhpRedis存在并且正确添加后IIS PHP却无法识别?

在你读之前:

我目前有一个 PHP 脚本,它只是添加了 Redis(使用 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
...

互联网信息服务在扩展管理器中检测redis插件,并显示已启用。

此问题出现在 v7.4 中。我已在 v8.0 中尝试过此方法,但仍然遇到相同的问题。PhpRedis 5.3.4 提供了一个 v7.4 DLL,仍存在相同的问题,并且没有意识到任何依赖关系。

答案1

问题已解决。我编译的 PHP 版本不支持线程安全功能,因此我必须编译具有线程安全的版本或使用 PhpRedis 的 NTS 版本。

相关内容