我在为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脚本工作。