我在Windows7上阅读this article安装了memcached,但遗憾的是我一直收到错误Fatal error: Class 'Memcache' not found in D:\xampp\htdocs\test\memcache\test.php on line 2
第2行:$memcache = new Memcache;
Win7 64,已安装Xampp。我在命令行上使用net start "memcached Server"
,但它说服务已经开始。
其他一些可能有用的信息;
在php.ini文件中:
extension=php_memcache.dll
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
更新:phpinfo(); show dll未加载。到目前为止尝试了几个不同的DLL文件,没有用。 dll也是正确的。它位于正确的文件夹中。
(P.S。有些人可能认为这个主题可能有重复,但是there is only 1 person遵循相同的指示并且在SO中有相同的错误。自3月以来,这个问题没有答案或解决方案。)
答案 0 :(得分:11)
我找到了PHP 5.4.4的工作dll文件
我不知道他们是否稳定,但他们肯定会工作。积分转到this link。
http://x32.elijst.nl/php_memcache-5.4-nts-vc9-x86.zip
http://x32.elijst.nl/php_memcache-5.4-vc9-x86.zip
这是2.2.5.0版本,我在编译之后注意到了(对于PHP 5.4.4)。
请注意,它不是2.2.6但是有效。我也用自己的FTP镜像了它们。 镜像链接:
http://mustafabugra.com/resim/php_memcache-5.4-vc9-x86.zip http://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip
答案 1 :(得分:7)
将此添加到您的php.ini:
extension="php_memcache.dll"
并重新启动apache
答案 2 :(得分:5)
Memcached只使用标准文本界面,因此可以在没有模块的情况下使用它。
// connect
$link = fsockopen($host,$port,$errno,$errst,$timeout);
// set
$data = sprintf("set %s 0 %s %s\r\n%s\r\n",
$key,$expire,strlen($value),$value);
fwrite($link,$data);
$result = trim(fgets($link));
if ($result == 'ERROR') {
// :(
}
// get
$data = sprintf("get %s\r\n",$key);
fwrite($link,$data);
$line = rtrim(fgets($link));
if ($line != 'END') {
return rtrim(fgets($link));
}
答案 3 :(得分:4)
所以我现在寻找解决方案。在这里,您可以下载一些已编译的扩展。
http://downloads.php.net/pierre/
问题是目前没有 PHP 5.4 的memcache扩展名。这是无法加载扩展名的原因。您需要正确的PHP版本和Tead Safe for Windows的扩展名。
如果您需要扩展名,最简单的方法是使用 PHP 5.3 。
最新版本的memcache是版本 3.0.6 ,但它是测试版,你可以在这里看到它。
http://pecl.php.net/package/memcache
您可以尝试使用Windows系统测试版和compile。但它的工作很多。
答案 4 :(得分:0)
另外一个问题可能是在apache .conf文件中的某处加载另一个版本的php模块。需要检查重复的" LoadModule php ..."指令以及该模块是否编译为正确的apache版本。 听起来很简单,但是当你在一台机器上有多个版本的php时却不是这样:) 或者它也可能是SElinux问题。
答案 5 :(得分:0)
xampp windows版本为32bit,你必须使用32bit memcache.dll
我对你有用的洞!