如何安装PHP 7扩展"memcache"在Windows上


How to install PHP 7 extension "memcache" on Windows

我在为php安装memcached扩展时遇到了很大的问题。

目前使用:

操作系统:Windows 10 x64
XAMPP
Apache: 2.4.18 (Win32)

我已经在C:/memcached中成功安装了memcached,服务正在运行。

但是当尝试添加memcache php扩展时,问题就开始了。我已经尝试了许多版本的php_memcache.dll和非似乎是工作。
我确实在php.ini中包含了扩展 extension=php_memcache.dll

当我运行php -m memcache未列出,并在顶部我收到错误:

PHP启动:无法加载动态库'C:'xampp' PHP 'ext'php_memcache.dll'
-指定的模块无法找到。

当我尝试运行test.php初始化memcache时,我收到Class not found exception

这是一个大问题,因为我需要它来运行selenium测试。

memcached服务实际上并没有为您安装PHP memcached扩展。它只安装用于存储缓存的memcached服务器。

你需要先从PECL存储库下载Windows DLL (点击蓝色的Windows DLL链接)。然后必须将extension=php_memcache.dll行添加到SAPI的正确php.ini文件中。另外,请注意扩展DLL文件需要放置在XAMPP安装的正确路径中。

对于Apache,只需在文档根目录下创建一个脚本,行为<?php phpinfo();,并尝试在web浏览器中加载该脚本。您应该看到顶部有一行标记为已加载的配置(php.ini),其中给出了已加载的php.ini文件的完整路径。在Windows上,如果您通过XAMPP之类的东西安装PHP,则路径实际上可能与phpinfo()中所述的不同。因此您可能需要依赖XAMPP来定位正确的php.ini文件。

对于CLI SAPI,您可以使用php.exe --ini执行相同的操作。同样,如果XAMPP包修改了您的配置路径(,因为这是一个编译时指令),您可能需要依赖它。

修改完PHP .ini后,需要重启PHP才能生效。


由于您在Windows上使用PHP 7,因此可能还需要注意的是,从PECL编译的DLL实际上可能无法在Windows的apache下工作,因为您更有可能使用头SAPI。所以请确保你下载的是正确的版本。据我所知,该版本只编译为与PHP 5.6一起工作。在评论中提到的用于PHP7的github替代方案可在https://github.com/nono303/PHP7-memcahe-dll上获得,它在非线程安全下进行了测试。因此,您可能只能在Windows上为您的CLI脚本工作。