Windows 10下PHP 8.1中Memcached扩展无法生效的问题排查
确认修改的是正确的php.ini文件
打开phpinfo()页面,找到「Loaded Configuration File」项,核对显示的路径是否为你修改的C:\wamp64\bin\php\php8.1.0\php.ini。WAMP环境中Apache使用的php.ini和PHP CLI的配置文件可能不是同一个,很多人会误改非加载的配置文件。同时确保extension=memcached放在正常启用的扩展配置区域,不要和禁用扩展混放,PHP 8.1+无需添加.dll后缀。验证依赖库的兼容性与环境变量生效
你放入C:\Windows的libhashkit.dll和libmemcached.dll必须与下载的3.2.0RC2版本php_memcached.dll完全匹配,版本不匹配会导致加载失败。另外,环境变量修改后需重启电脑才能生效,仅重启WAMP服务可能无法让新环境变量生效。核对扩展与PHP的匹配细节
确认下载的扩展是8.1 Thread Safe (TS) x64,与你的PHP版本(8.1.0)、WAMP架构(x64)完全一致。同时查看phpinfo中的「Compiler」项(如VC16),下载的扩展必须对应相同编译器版本,否则会出现兼容性问题。查看错误日志定位问题
打开WAMP的Apache错误日志(C:\wamp64\logs\apache_error.log)或PHP错误日志(php.ini中error_log配置的路径),日志中会明确记录扩展加载失败的原因,比如依赖库缺失、版本不兼容等。用CLI模式测试加载情况
打开命令提示符,进入C:\wamp64\bin\php\php8.1.0目录,执行命令php -m,查看输出中是否包含memcached。如果CLI模式下能加载,说明问题出在Apache的配置;如果加载失败,命令行会直接输出错误信息,可根据提示针对性排查。
内容的提问来源于stack exchange,提问作者Deepu Sasidharan

