如何在Windows中为PHP安装和使用memcached?

时间:2013-02-08 17:15:04

标签: php memcached

我在Windows 7中安装了memcached二进制文件,并将其作为服务器启动。

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

当我尝试在php.net上运行示例代码时,我会访问我的浏览器:

致命错误:第3行的C:\ DocumentRoot \ Framework \ index.php中找不到类'Memcache'调用堆栈:0.0010 335928 1. {main}()C:\ DocumentRoot \ Framework \ index。 PHP:0

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

4 个答案:

答案 0 :(得分:13)

任何遇到使用memcached在Windows上工作的问题的人的注意事项。

  • 对于初学者,请确保您拥有正确版本的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 install
  • 按照 c:\ pathtomemcached \ memcached.exe -d start 或net start“memcached Server”进行操作。在我的安装上,前者不起作用
  • 同样,我无法从任务管理器的“服务”选项卡启动memcached
  • 如果需要,可以使用低级别的memcached来播放,enable telnet,并在命令提示符下键入telnet。现在打开端口11211并尝试使用memcached
  • 能够密切关注memcached中发生的事情也很有用。 phpMemCacheAdmin是迄今为止最好的工具

答案 1 :(得分:3)

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

memcached是为Linux构建的,但它已被其他人移植到Windows。本教程已经过时了,但它可能正是您所需要的:http://www.codeforest.net/how-to-install-memcached-on-windows-machine

答案 2 :(得分:3)

这是为了未来的游客!

  1. 检查phpinfo()并查看它是否已列出。
  2. 如果没有,请检查php.ini中是否启用了扩展名,然后检查apache错误日志 错误信息! dll应该与php相同的编译器一致 是。 (VC9或VC6)顺便说一下,memcache.dll没问题
  3. 你可以获得php扩展“memcache”来在这里的Windows上使用memcached和php http://downloads.php.net/pierre/

    Memcached是服务器守护程序,你可以在这里获取它http://splinedancer.com/memcached-win32/

答案 3 :(得分:0)

您的new FileOutputStream(file, false);中应该列出composer.json,但它不会安装,如果丢失,它只会抛出一个错误。这里有多种获取方法:

Windows二进制路由

截止到2018年,AFAIK没有用于PHP 7的JUST Memcached二进制Windows端口 但是LaragonWinginx中有一个预打包的版本 enter image description here

Windows DLL路由

handful人在github上提供compiled DLLs(64位,并提供线程安全)

用于Linux路由的Windows子系统

ext-memcached

如果使用ubuntu sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt install php-memcached ,请重新启动php fpm

从源路径编译

You can compile the php bindings,但windows package of memcached已被破解4年(截至2018年)

仅本地缓存文件的填充路径

这是围绕Memcached的肮脏包装,称为StaticCache,您可以在紧急情况下使用它来从磁盘读取/写入值。它显然比memcached慢得多,因此它只不过是Windows开发的入门。如果您喜欢,可以将其定义为同名的polyfill

sudo service php7.2-fpm restart