Windows下的PHP 5.4所需的php_memcache.dll扩展

39

我借用了一个类似的帖子,但对我没有帮助: PHP 5.3的php_memcache.dll

我使用最新版本的easyPHP for Windows安装了服务器。它附带了PHP 5.4。现在我正在寻找一个能为我工作的memcache.dll文件,但我得到了这个错误:

"PHP启动:memcache:无法初始化模块。 模块编译时使用模块API = 20090626 PHP编译时使用模块api = 20100525 这些选项需要匹配"

如果有PHP 5.4 memcache.dll文件的链接,将不胜感激。

在上述帖子中,他们提到了5.3和pierre的版本,但我只找到了旧版本的dll。


不,我已经恢复到旧版本,并等待新版本发布后再升级。 - DS_web_developer
1
我是一个Linux用户,我不知道这是否有效,但你可以尝试一下:http://hashcode.ru/questions/86695/php-5-4-windows-memcache - Kevin
@DS_web_developer:你检查了我的答案吗? - Justin T.
不,抱歉。我最终使用的是5.3版本,目前没有计划更新。但是当我决定更新时,我知道该去哪里查看。谢谢! - DS_web_developer
你能找到一个可用的版本吗? - Baba
5个回答

65

3
链接可能失效!请简要描述您的回答。 - Bhuvan Rikka
5
我给你点赞,因为这是一个针对 PHP 5.4.x 和 VC9 编译的工作中的 Windows Memcache 扩展,正符合原问题的要求。与 memcache 扩展静态编译版本相比,这是更好的解决方案。 - seven
2
@BhuvanRikka 你的意思是编辑问题并添加DLL的base64吗?我认为这是不允许的。 - oxygen
2
页面可以找到 -- Apache已经完美启动。 - Dustin Graham
TS和NTS版本的发布有什么区别?您可以在此处找到两者:http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/,两者均适用于VC9。 - Juan Carlos Alpizar Chinchilla
显示剩余2条评论

13

非常感谢。我正在寻找适用于我的PHP 5.4 TS版本。谢谢! - Patrick Desjardins
1
可下载文件名中的“nts”和“ts”有什么区别? - Beebee
3
如果在您的服务器上运行phpinfo,您可以查看Thread Safety的值来确定应该使用哪种模式,NTS表示非线程安全,TS表示线程安全。如果Thread Safety值显示为Disabled,则应该使用NTS。请注意,本文仅为翻译,不包含解释或其他内容。 - Mikael Koskinen
谢谢。您可能需要编辑那个Dropbox链接,因为我们都可以看到您的照片... - CoderDan

5
链接已失效,请尝试http://windows.php.net/downloads/pecl/releases/memcache/获取最新的memcache dll版本。在下载前,您需要了解以下信息:
-操作系统版本(32位或64位)
-PHP编译器版本
-线程安全支持
可以使用phpinfo()函数轻松检查PHP编译器版本和线程安全支持。

2
感谢Kevin Horst,经过测试,在我的Win7电脑上可以正常工作! 解决方案:只需下载托管在Amazon AWS上的静态编译版本并提取即可。
以下是php -i的一些输出:
phpinfo()
PHP Version => 5.4.0

System => Windows NT xxxx 6.1 build 7601 (Windows 7 Ultimate Edition Service Pack 1) i586
Build Date => Mar  7 2012 14:17:27
Compiler => MSVC9 (Visual C++ 2008)
Architecture => x86
Configure Command => cscript /nologo configure.js  "--enable-cli" "--enable-memcache=shared"
Server API => Command Line Interface
Virtual Directory Support => enabled
Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => C:\Users\xxxx\Downloads\UniServer\usr\local\php\php.ini
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
PHP API => 20100412
PHP Extension => 20100525
Zend Extension => 220100525
Zend Extension Build => API220100525,TS,VC9
PHP Extension Build => API20100525,TS,VC9

memcache

memcache support => enabled
Active persistent connections => 0
Version => 2.2.5
Revision => $Revision: 319585 $

1
你的意思是只需用那个文件替换你的php目录吗?因为那里面没有memcache.dll... - Benno
它是静态链接的,而不是动态链接的。因此没有.dll文件。 - Philippe Gerber

2
您可以在http://windows.php.net/downloads/pecl/releases/找到已经为Windows编译的任何官方PECL模块。
您需要知道正在运行的PHP版本,例如5.3、5.4、5.5等等。
您需要知道PHP版本是32位还是64位,例如x86、x64。
您需要知道PHP版本是否编译为线程安全,例如ts、nts。
您可以从以下内容的文件中获取所有信息。请注意保留HTML标记。
    <?php phpinfo() 

您可以从Web服务器或通过命令行查看它,并使用以下命令将输出发送到文件:

    php -i > phpinfo.txt

注意:从命令行获取的数据是用相同配置编译的php-cli数据

请注意,有Memcache和Memcached两个版本,但是从php网站上只能获取到memcache版本


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接