我在安装php的memcached扩展时遇到了很大的问题。
目前正在使用:
操作系统:Windows 10 x64
PHP:7.0.1通过 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进行内存缓存初始化时,我会回复Class not found exception
这是一个很大的问题,因为我需要它来运行硒测试。
答案 0 :(得分:7)
memcached服务实际上并没有为您安装PHP memcached扩展。它只安装用于存储缓存的memcached服务器。
您需要先下载Windows DLL from the PECL repository(点击蓝色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。对于PHP 7的github替代方案,在评论中提到的https://github.com/nono303/PHP7-memcahe-dll处可用,在非线程安全下进行测试。因此,您可能只能在Windows上使用CLI脚本。