2013-02-08 89 views
10

我在Windows 7中安装了memcached二进制文件并将其作为服务器启动。如何在Windows for PHP中安装和使用memcached?

当我键入wmic进程得到描述,exetuablepath | findstr memcached.exe我得到的回应:命令行上的memcached.exe c:\ memcached \ memcached.exe。

当我尝试运行在php.net示例代码中,我得到我的浏览器:

致命错误:类“内存缓存”用C未找到:\的DocumentRoot \第3行框架\的index.php调用堆栈:0.0010 335928 1. {main}()C:\ DocumentRoot \ Framework \ index.php:0

那么,我做错了什么?我使用memcache.dll,因为memcached.dll不存在Windows我相信?

+2

希望你已经启用了扩展! :) – Venu 2013-02-08 17:17:02

+0

我有..还是没有运气。我应该下载哪个dll? – 2013-02-08 17:17:30

+0

你确定扩展程序已加载?检查'phpinfo()'并查看它是否被列出。 – 2013-02-08 17:18:35

回答

4

这是为未来的游客!

  1. 检查phpinfo()并查看它是否已列出。
  2. 如果不是,请检查php.ini中是否启用了扩展功能,然后检查Apache错误日志是否为 错误消息! dll应该遵循与php 相同的编译器。 (VC9或VC6)顺便说一句,memcache.dll优良

你可以得到PHP扩展“内存缓存”,以使用memcached用PHP在这里的窗户http://downloads.php.net/pierre/

Memcached是服务器守护程序,你可以得到它这里的窗口http://splinedancer.com/memcached-win32/

+12

所有链接似乎被打破:| – Gigala 2015-07-23 06:43:25

2

基于评论,我假设你没有下载和安装memcached,但已经成功安装了PHP的memcached模块。基本上,你已经拿到了车钥匙,但没有车。

memcached是为Linux构建的,但它已被其他人移植到Windows。本教程很旧,但它可能是你要找的东西:http://www.codeforest.net/how-to-install-memcached-on-windows-machine

12

给任何遇到与在Windows上运行memcached工作有关的问题的说明。

  • 对于初学者确保您有memcached的DLL的正确版本,它是可访问的。在http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/有很多选项可以选择错误版本的memcached!
  • 如果您正在运行PHP 5.5,您还需要php5.dll。你可以得到这个here
  • 你可能需要编辑你的环境路径设置,所以这个DLL可以找到。转到我的电脑 - >属性 - >高级,然后单击环境变量查看/编辑路径。如果你编辑这个,你需要重新启动计算机。
  • 确保安装了memcached服务器。 Ctrl + Alt + Del并检查你的服务列表中是否存在memcached
  • 如果不是,你需要*从Cmd提示符下安装以管理员身份运行(从开始菜单中选择附件,单击命令提示符并单击选择以管理员身份运行) c:\ pathtomemcached \ memcached。exe -d安装
  • 跟随此与c:\ pathtomemcached \ memcached.exe -d开始或网络启动“memcached服务器”。在我安装前不工作
  • 同样我无法启动从任务管理器
  • 这是很方便的,能够在较低的水平,从而enable telnet与memcached的身边打球,如果需要的服务选项卡memcached的,并从命令提示符键入telnet。现在打开端口11211并尝试使用memcached
  • 能够对memcached中正在发生的事情进行标记也很有用。 phpMemCacheAdmin是迄今为止最好的工具
+0

我认为这个:**“这是非常容易选择错误的”**可以粗体在这个答案。由于选择了错误的版本,我整天都失去了。我还想补充说,匹配** 86x/64x ** WAMP和memcache.dll版本以及WAMP编译VC6/VC9并匹配** VC6/VC9 **版本的memcache.dll非常重要。我有WAMP VC9,我使用的是memcache.dll VC6,这就是为什么它不起作用。 – Rob 2014-05-01 20:12:35

+0

@Rob - 好点!我编辑了答案并突出了答案的重要部分。 – DroidOS 2014-05-02 06:42:13

+0

为了确定是否使用线程安全或非线程安全,这帮助了我:http://stackoverflow.com/a/5800346/470749 – Ryan 2017-04-04 00:10:33