Windows下添加PHP扩展需严格匹配版本、架构和线程安全类型,并将DLL放入php.ini中extension_dir指定路径,再在php.ini中以extension=redis形式启用。

Windows 下用 XAMPP、WAMP 或手动编译的 PHP,添加扩展模块本质就两步:把 .dll(Windows)或 .so(Linux/macOS)文件放进扩展目录,再在 php.ini 里启用它。但实际卡住的地方,90% 出在版本不匹配或路径写错。
确认 PHP 版本和线程安全(TS/NTS)类型
扩展必须和当前 PHP 严格匹配:主版本(如 8.1)、次版本(如 8.1.23)、架构(x64/x86)、线程模型(TS 或 NTS)。错一个就报 PHP Warning: PHP Startup: Unable to load dynamic library 或直接启动失败。
- 运行
php -v看主版本号 - 运行
php -i | findstr "Thread Safe"(Windows)或php -i | grep "Thread Safe"(Linux/macOS)确认是enabled(TS)还是disabled(NTS) - 运行
php -i | grep "Architecture"确认是x86还是x64 - 去 PECL 官网 下载对应包,比如
redis-5.3.7-8.1-ts-vs16-x64.zip中的8.1是 PHP 版本,ts是线程安全,vs16是编译器版本(XAMPP 通常用 vs16),x64是架构
把扩展文件放到正确目录并修改 php.ini
别凭感觉写路径。先查真实扩展目录:
php --ini
输出里会显示 Loaded Configuration File(即你正在用的 php.ini)和 Scan for additional .ini files in。扩展文件要放的位置是 extension_dir 的值,不是 php.ini 所在目录。
网站功能资讯模块资料模块会员模块产品展示模块产品订购模块购物车模块留言模块在线加盟模块多级后台管理系统网站环境本系统为 asp.net开发donet版本为1.1框架数据库为acdess2000授权方式为免费,本版本本地可直接运行(使用http://localhost或http://127.0.0.1访问)如需放到外网通过域名访问,则需通过qq联系我免费索取钥匙文件,将钥匙文件放到网站空间根目录即可
立即学习“PHP免费学习笔记(深入)”;
- 运行
php -r "echo ini_get('extension_dir');"获取准确路径,例如C:\xampp\php\ext -
解压下载的 PECL 包,把里面的
php_redis.dll(Windows)或redis.so(Linux)复制到该ext目录下 - 打开
php.ini,找到;extension=mbstring这类行,在下面新增一行:extension=redis(注意:不要写.dll或.so后缀,也不要用绝对路径) - 如果扩展有依赖(如
igbinary),必须先加载依赖:extension=igbinary再extension=redis
验证是否加载成功
改完 php.ini 后必须重启 Web 服务(Apache/Nginx)或 CLI 服务,否则无效。验证方式不止一种:
- 命令行执行
php -m | findstr redis(Windows)或php -m | grep redis(Linux/macOS),看到redis表示已加载 - 写个
info.php文件:,浏览器访问,搜索 “redis” 或对应扩展名,看是否有完整模块信息块 - 如果只显示
extension=redis但没模块页,常见原因是 DLL 文件被杀毒软件拦截、权限不足、或php.ini被多个地方加载覆盖(比如 Apache 的httpd.conf里又指定了另一个php.ini)
最常被忽略的是:XAMPP/WAMP 的控制面板里点“Restart”未必真正重载了 PHP 配置,有时得手动关掉所有 Apache 进程再启动;另外,CLI 和 Web 使用的 php.ini 很可能不是同一个文件,php --ini 和 phpinfo() 显示的路径必须一致才可靠。









