2012-05-30 71 views
0

我安装了Memcached和我也通过键入net start“memcached服务器”,启动该服务,并表示,这项服务已经开始,所以我重新启动Apache和尝试了代码的使用memcached的:memcache无法在Windows上工作?

<?php 
//phpinfo(); 
$memcache = new Memcache; 
$memcache->connect("localhost",11211); //change if necessary 

$tempArray = array('fish', 'cow', 'demon'); 
$temp = serialize($testArray); 

$memcache->add("key", $temp, 60); 
print_r(unserialize($memcache->get("key"))); 


?> 

但它给错误:Fatal error: Class 'Memcache' not found in C:\wamp\www\temp.php on line 3 这是否意味着memcache未启动或其他任何内容?我没有做任何事情,除了安装和启动服务,我需要做任何其他事情,如指定内存和添加服务器或其他任何东西?我正在使用wamp服务器。

+0

权限?尝试打开命令提示符,因为管理员 – tigrang

+0

给出了一些错误 –

+0

'phpinfo();'并查找已安装的memcache扩展名。在你看到没有任何东西之后 - 检查有关如何安装它的wamp文档。 – zerkms

回答

4

这里是为我工作的步骤:

网址:How to enable memcache in WAMP

所需的文件

memcached.exe Direct Link 
MSVCP71.DLL Windows DLL Files 
msvcr71.dll 
php_memcache.dll Working memcache for PHP 5.3.4 

步骤

Copy MSVCP71.DLL, msvcr71.dll to C:\windows\sysWOW64 
Copy memcached.exe into C:\memcached 
Click Windows-Key 
Type: CMD 
press: Ctrl-Shift-Enter 
Choose yes 
type: C:\memcached\memcached.exe -d install 
type: C:\memcached\memcached.exe -d start 
Copy php_memcache.dll to C:\wamp\bin\php\php5.3.4\ext 
Restart Apache using Wamp controls 
Enable WAMP -> PHP -> PHP Extensios -> php_memcache 

然后,我打的phpinfo()它不显示memcache属性。任何人都可以帮助我安装wmap。

- 感谢 D.Jeeva

2

确保以管理员身份运行命令提示符,如果您还没有运行命令提示符。同时确保你已经启用了memcache,并确保你拥有正确的dll。使用phpinfo()检查是否启用了PHP端的memcache。然后运行一个快速脚本来测试memcache是​​否可用。如果您没有遇到错误,请尝试以下操作:启用memcache。

<?php 
$memcache = new Memcache; 
$memcache->connect("localhost",11211); //change if necessary 

$tempArray = array('fish', 'cow', 'demon'); 
$temp = serialize($testArray); 

$memcache->add("key", $temp, 60); 
print_r(unserialize($memcache->get("key"))); 
?> 
+0

当我以管理员身份运行命令提示符并运行dir命令时,它会给出此错误消息以代替每个文件和文件夹:系统无法在消息文件中找到消息编号为0x2355e的消息文本申请。所以我仍然继续...并执行了以下命令集: 'c:\ memcached \ memcached.exe -d install c:\ memcached \ memcached.exe -d start' 我重新启动了我的服务,然后当我尝试脚本时,它给了我这个错误: '致命的错误:Class'Memcache'找不到C:\ wamp \ www \ temp.php在第二行' –

+0

您使用的是cmd的副本还是您重命名了它?该错误消息不应以任何方式与memcache相关联。另外,确保正在使用正确的扩展名,还有用于memcache和memcached的PHP扩展。使用phpinfo()来验证是否启用了正确的一个。如果是,并且你有守护进程运行它应该重新启动后才工作。 – Johnnyoh

+0

不,我没有使用副本,我没有重新命名它,当我安装了memcached,它没有显示任何错误,我也开始它。 phpinfo()没有给我任何有关memcached的信息.... @johnnyoh –

2

Memcached服务是不够的。它本身与PHP无关,并且不易从PHP中使用。为了使它可以通过PHP使用,您还需要使用MemcacheMemcached PHP扩展,它将处理与服务的通信。看起来你打算使用Memcache。

PHP manual解释了如何在Windows上安装PECL扩展。 WAMP可能有一个更简单的机制,我不确定,因为我不熟悉WAMP。

编辑

,我发现这个blog post有关安装了Memcached的PHP上WAMP虽然工作。这可能会有帮助。看起来扩展程序可能已经作为您计算机上的.dll文件提供,您只需编辑php.ini文件以包含扩展名,然后重新启动Apache。

1

我面对完全一样的问题。

在我的情况下,问题是我在64-bit系统上运行,但我下载了32-bit memcache dll文件。 我下载后Memcache 2.2.6 VC9 x64 Thread Safe

+0

这也是我的问题。我花了很多年试图解决这个问题。非常感谢 – Emmanuel

+0

@Memos你不应该在Windows上使用非线程安全版本吗? –

+0

@Phill Healey,我不这么认为。我看不出为什么不使用线程安全版本。 – Memos