【问题标题】:How to enable memcache in WAMP如何在 WAMP 中启用内存缓存
【发布时间】:2011-03-02 07:02:33
【问题描述】:

如何在 WAMP 中安装 memcache?

我在php.ini 中没有找到任何 php_memche。

我现在该怎么办?

@瑞安

感谢您的步骤,现在在 WAMP 中启用了 memcache,我也交叉检查了 PHPINFO。内存缓存正在显示。

我已经尝试过以下示例 memcache 示例。但抛出错误。

<?php

$memcache = new Memcache;
$memcache->connect('localhost:8085', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";

$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);

?>

收到以下通知错误。

( ! ) Notice: Memcache::getversion() [memcache.getversion]: Server localhost:8085 (tcp 11211) failed with: Malformed version string (0) in C:\wamp\www\memcache\sample.php on line 7

我错过了什么......

【问题讨论】:

标签: php wamp


【解决方案1】:

Memcache 是一个 PECL 扩展,不与 PHP 绑定。从manual page 开始了解安装说明。

【讨论】:

    【解决方案2】:

    以下是对我有用的步骤:

    需要的文件

    步骤

    1. MSVCP71.DLLmsvcr71.dll复制到C:\windows\sysWOW64
    2. memcached.exe 复制到C:\memcached
    3. 单击 Windows 键
    4. 类型:CMD
    5. 按:Ctrl-Shift-Enter
    6. 选择yes
    7. 类型:C:\memcached\memcached.exe -d install
    8. 类型:C:\memcached\memcached.exe -d start
    9. 复制php_memcache.dllC:\wamp\bin\php\php5.3.4\ext
    10. 使用 Wamp 控件重新启动 Apache
    11. 启用 WAMP -> PHP -> PHP 扩展 -> php_memcache

    【讨论】:

    • 我做了所有的步骤,而 phpinfo() 没有内存缓存。 wamp 中的扩展列表在 memcache 旁边显示一个警告标志。 php 中没有 memcache 类。
    • 此时将 DLL 链接更新为 this 之类的内容是否明智??
    • 永远不要像这个答案中建议的那样下载 Microsoft Visual C/C++ 运行时库。 而是去 icrosoft 网站然后获取正确的方法
    • “Working memcache for PHP 5.3.4”链接在使用 Chrome 访问时会打开一个令人讨厌的骗局窗口。底层下载的 zip 文件在扫描时未包含任何病毒,但如果您使用此文件,请保持警惕。
    【解决方案3】:

    如果您运行的是 64 位 WAMP:

    普通服务和扩展对你不起作用。

    安装 64 位 memcached 服务:

    http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip

    以及这些 php 扩展之一(以匹配您的 php 版本):

    PHP 5.3:http://www.mediafire.com/download.php?o60feet9sw71six

    PHP 5.4:http://www.mediafire.com/download.php?8d3vd26z3fg6bf1

    Php 5.4 的 32 位版本: http://windows.php.net/downloads/pecl/releases/memcache/3.0.6/php_memcache-3.0.6-5.4-ts-vc9-x86.zip

    【讨论】:

    • 启用上述二进制文件作为服务工作会提示 Windows 用户给定的软件应用程序需要注意并且应该与之交互。
    • 这个解决方案也帮助了我。值得一提的是,我将 memcached-win64-1.4.4-14.zip 中的两个 dll 文件都放到了 C:\Windows\System32 中,在安装 memcached 之前,我以管理员身份运行了 cmd 提示符。
    • 感谢 64 位 memached 服务提示。在 wamp x64 + win8 + php 5.4.3 上应用它对我有用。
    • 您对5.4 version is worked 的回答,但之后需要遵循@Idan Magled 第四步的回答 “第 4 步:关闭并打开您的 WAMP(不重新启动 - 关闭并打开)然后您完成。”
    【解决方案4】:

    对于在为 wamp 安装 memcache 时遇到问题的每个人,这就是它对我的工作方式。

    1. 确保你检查你的 phpinfo 并寻找“编译器”我的显示 MSVC9 (Visual C++ 2008) 这样你就知道你下载的是 vc9 还是 vc6 的 dll。还要在 phpinfo 上查找“线程安全”,它显示已启用,如果禁用,则需要下载包含 TS 的 dll 文件,然后下载带有 NTS 字样的 dll。

    您可以在下面找到不同 php 版本的 dll,确保您下载的版本与您的版本匹配:

    确保你也有 32 位或 64 位并且你下载正确

    如果你的 windows 是 32 位,则将文件解压到你的 windows/system32 中,或者你是 windows 上的 64 位系统文件夹。

    还解压到你是 wamp/bin/apache/bin 和 wamp/bin/you're_php_version/ext 和 memcache.exe 解压到这个文件夹确保你使用 memcached 32 位或 64 位根据你系统。

    完成此操作后,以管理员身份运行 windows 命令提示符,然后浏览到可执行内存缓存的位置并执行以下操作:

    第 1 步:memcache.exe -d 安装 第二步:memcache.exe -d 启动

    然后在您的 wampserver 上打开托盘菜单并转到 php 菜单并单击 php.ini 确保添加您的扩展名,以防万一未在此处列出:extension=php_memcache.dll

    重启你是wampserver,然后去你是phpinfo,如果你看到memcache,它就会被安装。

    希望对你有帮助

    祝大家新年快乐!

    【讨论】:

      【解决方案5】:

      我被困了一段时间,所以我决定写下我的答案:

      第 1 步:从该站点下载与您的 PHP 版本和 wamp 版本(32 位或 64 位)兼容的正确软件包:

      Link for download site

      我建议你下载“线程安全”的。

      第 2 步:下载软件包后,您需要将 php_memcache.dll 复制到您的扩展文件夹中:C:\wamp\bin\php\{YOUR PHP VERSION}\ext

      第 3 步:将扩展值添加到您的 php.ini file,要在正确的位置执行此操作,只需搜索已安装的另一个扩展,例如:extension=php_bz2.dll,然后将其复制粘贴到本节末尾(之后所有的“扩展=”)

      extension=php_memcache.dll

      第 4 步:关闭并打开您的 WAMP(不重新启动 - 关闭并打开),您就完成了。

      如果您现在遇到问题 - 只需打开错误日志文件(在根目录中)并检查您遇到的错误。

      我的错误是我的 WAMP 是 32 位的,而我已经下载了 64 位的内存缓存

      这解决了我的问题,希望对您有所帮助。

      【讨论】:

      • 你节省了我剩下的几个小时。我花了1小时后来到这里。竖起大拇指,朋友!
      • 我知道这已经很老了,但我无法让我的 wamp 在 PHP > 扩展下显示 PHP 扩展,有什么想法吗?
      【解决方案6】:
      1. 如果您使用 windows,请下载 memcache,而不是 memcached。明智地下载您的 php 版本(下载链接:https://pecl.php.net/package/memcache/3.0.8/windows
      2. 复制php_memcache.dll到C:\wamp\bin\php\php5.3.4\ext
      3. 使用 Wamp 控件重新启动 Apache
      4. 启用 WAMP -> PHP -> PHP 扩展 -> php_memcache

      【讨论】:

        【解决方案7】:

        Memcache 是一个 PECL 扩展,不与 PHP 捆绑

        此 PECL 扩展未与 PHP 捆绑在一起。安装此 PECL 扩展的信息可以在名为安装 PECL 扩展的手册章节中找到。其他信息,例如新版本、下载、源文件、维护者信息和变更日志,可以在此处找到:http://pecl.php.net/package/memcache

        Note:
        It's possible to disable memcache session handler support. 
        The 'pecl install' option prompts for this (default is enabled) 
        however when compiling statically into 
        PHP the --disable-memcache-session configure option may be used.
        

        在阅读此页面上其他人提供的信息时非常重要的是要注意,服务“memcached”有两个不同的 memcache PHP 实现。

        1) pecl-memcache
        2) pecl-memcached
        

        这个页面是第一个,pecl-memcache。

        如果您正在寻找 pecl-memcached 信息,请访问此处:

        http://www.php.net/manual/en/book.memcached.php

        【讨论】:

          【解决方案8】:

          因为我的编辑被拒绝了,在 windows 上安装 memcache 后,以下是对我有用的补充:

          手动将 memcache 配置添加到 php.ini。注意:您的系统上可能安装了两个不同的 php.ini。对我来说,修改位于 wamp64/bin/apache 中的那个是唯一有效的:

          extension=php_memcache.dll
          [Memcache]
          memcache.allow_failover = 1
          memcache.max_failover_attempts=20
          memcache.chunk_size =8192
          memcache.default_port = 11211
          

          您可能需要将扩展​​添加到扩展块;

          灵感来自this thread

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-12-26
            • 2016-09-30
            • 1970-01-01
            • 2013-09-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多