PHP memcached适用于Windows XP 32位

时间:2012-11-29 14:09:13

标签: php memcached

如何在Windows XP 32位中安装memcached?

我可以成功安装memcache,可以使用下面的代码

$m = new Memcache;
$m->connect('localhost',11211);

但我需要像这样使用memcached,

$m = new Memcached();
$servers = array(
    array('localhost', 11211)
    );
    $m->addServers($servers);

现在上面的代码显示找不到Memcached类。由于没有安装。 那么如何在Windows XP 32位中安装memcached

2 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,对于那些不想(或者无论出于何种原因)运行虚拟机的人,我最终得到了不同的代码,用于在Windows上运行而不是在Linux上运行

当我运行以下内容时:

$m = new Memcache;
print_r(get_class_methods($m));

我注意到Memcache没有AddServers()方法,这是Memcached的一种方式(与php.net docs on Memcache class相比较php.net docs on Memcached class并注意到Memcached还有一个批次更多!)。

因此对于Windows(您需要使用Memcache,没有Memcached可用),解决方案是创建自己的短循环以添加多个服务器:

$m = new Memcache();
$servers = array(
    array('localhost', 11211),
    // ... other servers here
);
foreach ($servers as $s) $m->addServer($s[0], $s[1]);

如果您需要提供适用于Windows和Linux的两组代码,您可以随时将上述内容放在if (PHP_OS == 'WINNT')中,然后将Linux代码放在else语句之后。所以,类似于:

$servers = array(
    array('localhost', 11211),
    // ... other servers here
);
if (PHP_OS == 'WINNT') {
    $m = new Memcache();
    foreach ($servers as $s) $m->addServer($s[0], $s[1]);
}
else {
    $m = new Memcached();
    $m->addServers($servers);
}

答案 1 :(得分:0)

和你有同样的问题。

在阅读http://shikii.net/blog/installing-memcached-for-php-5-3-on-windows-7/之后,我发现由于libmemcached,Memcached是为linux设计的。

仍在等待有关此问题的正确解决方案。

有没有人可以帮助我们?谢谢。

*抱歉我的英语不好。