【问题标题】:PHP Can't find save handler memcachePHP找不到保存处理程序memcache
【发布时间】:2011-05-02 17:57:51
【问题描述】:

我正在为这个问题绞尽脑汁(应该很简单),但似乎找不到解决方案,所以希望你们中的一个可以帮助我。我正在尝试使用 php 的 memcache 扩展来存储会话。

我正在运行 MAMP 并正确安装了扩展程序(我认为...当我执行 phpinfo 时它会显示),正在运行守护程序并可以通过 php 连接到它,使用类似这样的东西:

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

所以我知道 php 可以与守护进程通信。问题是当我在 php.ini 中启用 memcache 会话存储并尝试执行 session_start() 时,它给了我一个错误,它“找不到保存处理程序 memcache”。这就是我的 php.ini 中的内容:

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

任何帮助将不胜感激 =(

一些附加信息:

使用此处的说明安装:

http://lullabot.com/articles/setup-memcached-mamp-sandbox-environment

在 OSX 1.6.4 上,我将 .so 文件放在正确的目录中

【问题讨论】:

    标签: php apache memcached


    【解决方案1】:

    Memcached,而不是 Memcache。与类名相同。

    session.save_handler = memcached
    

    编辑,因为 OP 表明这只是一个错字。

    这里有一些类似的故事:
    http://www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/
    http://phpslacker.com/2009/03/02/php-session-clustering-with-memcache/

    当安装程序询问您“启用 memcache 会话处理程序支持”时,您是否说“是”?

    如果它不起作用,请尝试新的 Memcached 扩展(使用 D)。它应该以某种方式更好。

    【讨论】:

    • 啊抱歉,我的帖子打错了,我使用的是 memcache.so 扩展名,所以当我使用 save_handler = memcached 时,它会抛出同样的错误。
    • 谢谢你,我必须运行“pecl install memcache”命令来构建扩展并启用支持。适用于我的生产盒,但不幸的是不适用于 MAMP,我想我必须想办法为我拥有的版本重新编译扩展。
    【解决方案2】:

    如果您想使用memcached 而不是memcache,请确保您的session.save_path 中没有tcp://。所以你应该修复你的session.save_path from

    session.save_path = "tcp://127.0.0.1:11211"
    

    session.save_path = "127.0.0.1:11211"
    

    【讨论】:

    • 不知道你的帖子为我节省了多少时间。谢谢谢谢谢谢。
    【解决方案3】:

    您可能仍然需要安装 PHP memcached 扩展,例如 yum install php55-pecl-memcached

    【讨论】:

    • 或者试试:apt-get install php-memcache php-memcached
    【解决方案4】:

    您需要启用 memcache 会话处理程序支持,然后安装 php5-memcache。您使用的是哪个操作系统以及如何安装它?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2011-06-01
    • 2017-05-24
    • 1970-01-01
    • 2015-08-29
    相关资源
    最近更新 更多