Windows IIS服务器下PHP 8的Memcache配置与故障解决
Windows IIS 下 PHP 8 配置 Memcached 完整步骤
先纠正你的核心错误
你之前从PECL下载的是PHP的Memcached扩展,不是Memcached服务端程序,所以解压后找不到memcached.exe,这是命令执行失败的根本原因。下面是完整的配置流程:
一、安装 Memcached 服务端
- 下载适配Windows系统(x86/x64)的Memcached服务端稳定版,解压到
C:\memcached目录 - 以管理员身份打开命令提示符(CMD),执行以下命令:
cd C:\memcached memcached.exe -d install memcached.exe -d start - 验证:打开Windows服务管理器,确认
memcached服务处于运行状态
二、安装 PHP 8 对应的 Memcached 扩展
- 从PECL获取适配PHP 8.0、对应系统位数(x86/x64)、线程安全(TS)/非线程安全(NTS)的Memcached扩展包(可通过
phpinfo()查看你的PHP线程安全状态) - 解压扩展包,将
php_memcached.dll复制到PHP安装目录的ext文件夹 - 将扩展包中的依赖文件
libmemcached.dll、libsasl.dll复制到C:\Windows\System32(或PHP根目录,确保系统能加载这些依赖)
三、配置 PHP 启用扩展
- 打开IIS使用的
php.ini文件(可通过phpinfo()查看Loaded Configuration File路径确认) - 在
Dynamic Extensions区域添加一行:extension=php_memcached.dll - (可选)添加Memcached基础配置:
memcached.default_host = 127.0.0.1 memcached.default_port = 11211
四、验证配置
- 重启IIS服务:打开CMD执行
iisreset - 创建
phpinfo.php文件,内容如下:<?php phpinfo(); ?> - 访问该文件,搜索
memcached,确认扩展已成功加载 - 测试连接:创建测试脚本
test_memcached.php:
访问脚本,若输出<?php $mem = new Memcached(); $mem->addServer('127.0.0.1', 11211); $mem->set('test', 'Memcached works!', 3600); echo $mem->get('test'); ?>Memcached works!则配置完成
常见问题排查
- 命令执行报错
'memcached.exe' is not recognized:确保操作的是Memcached服务端程序,而非PHP扩展包,且已进入服务端所在目录或使用完整路径执行命令(如C:\memcached\memcached.exe -d install) - 扩展加载失败:检查扩展文件与PHP版本、位数、线程安全状态是否匹配,依赖dll是否已放置到正确路径
- IIS重启后扩展未生效:确认修改的是IIS实际加载的
php.ini文件
内容的提问来源于stack exchange,提问作者Suraj
相关产品推荐
相关产品推荐

