php在windows加载redis扩展失败主因是版本不匹配或路径配置错误:需确认php主版本、nts/ts类型、x64架构及vc编译版本,下载对应php_redis.dll放至ext目录,php.ini中添加extension=php_redis.dll并重启服务,再启动redis服务测试连通性。

PHP在Windows上加载Redis扩展失败,90%以上是版本不匹配或路径配置错误导致的,不是代码问题,也不是Redis服务没启——先别急着写连接代码,得把php_redis.dll塞对地方、叫对名字、配对参数。
确认PHP版本、TS/NTS类型和架构
这步跳过,后面全白忙。打开命令行,执行:php -v看主版本(如8.2.9),再执行:php -i | findstr "Thread Safety\Architecture"。输出里必须同时看到disabled(代表NTS)和x64(代表64位)。PHPStudy Pro默认用NTS版PHP,Apache/Nginx模块模式下也基本是NTS;若看到enabled,说明你当前用的是TS版,要换对应TS的DLL。
- 别信PHPStudy面板上写的“PHP 8.2”,它可能只是显示名,实际CLI环境未必同步
- 系统是64位 ≠ PHP是64位,
Architecture字段才是唯一依据 - VC版本(如VS16)由PHP编译时决定,下载DLL时必须匹配,否则
php -m会直接报错退出,不提示具体原因
下载并放置正确的php_redis.dll
去https://windows.php.net/downloads/pecl/releases/redis/找对应PHP主版本的最新稳定包,例如PHP 8.2.x就选php_redis-5.3.7-8.2-nts-vs16-x64.zip这类命名的压缩包。解压后只取php_redis.dll(php_igbinary.dll非必需,PHP 8.2+已内置序列化支持,加了反而可能冲突)。
- 文件必须放进PHP安装目录下的
ext子目录,例如D:\phpstudy_pro\Extensions\php\php8.2.9nts\ext\ - 不要放错位置:不是Apache的
bin目录,也不是PHPStudy的根目录 - 文件名必须一字不差,不能改后缀、不能加空格、不能有中文
修改php.ini启用扩展
找到PHP实际加载的php.ini文件(用php --ini确认路径),在文件末尾添加一行:extension=php_redis.dll。注意:不要加路径,只写文件名;不要用分号注释;不要写成extension="php_redis.dll"(引号在Windows下可能触发解析异常)。
- 改完保存后,必须重启PHPStudy的Web服务(不只是浏览器刷新)
- 验证是否生效:命令行执行
php -m | findstr redis,有输出redis才表示扩展已加载 - 如果
phpinfo()页面里看不到redis模块,大概率是php.ini路径错了,或者扩展被其他配置禁用了(比如disable_functions里写了dl)
启动Redis服务并测试连通性
Redis服务器和PHP扩展是两回事。扩展装好了,不代表Redis服务在跑。推荐用GitHub上tporadowski/redis项目发布的Windows版,解压后运行:redis-server.exe redis.windows.conf。端口默认6379,无密码。
- 测试服务是否可用:新开CMD,执行
redis-cli.exe -h 127.0.0.1 -p 6379 ping,返回PONG即通 - PHP连接测试代码只需三行:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); var_dump($redis->ping()); - 常见报错
Connection refused不是PHP问题,是Redis没启动;Class 'Redis' not found才是扩展没加载成功
最易被忽略的是:PHP CLI和Web SAPI用的可能是两个不同的php.ini,php -m成功不代表网页里phpinfo()能看到redis——务必用phpinfo()页面里的“Loaded Configuration File”路径去改配置,而不是凭感觉改某个文件。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











