2010-10-30 28 views
3

我在这个问题上讨论了我的大脑(应该很简单),但似乎无法找到解决方案,所以希望您能帮助我。我试图使用php的memcache扩展来存储会话。PHP找不到保存处理程序memcache

我运行甲基苯丙胺,并安装了正确的扩展名(我想......它显示了,当我做的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文件放在正确的目录下

回答

9

Memcached,而不是Memcache。与班级的名字相同。

session.save_handler = memcached 

编辑由于运表示,这只是一个错字。

这里也有一些类似的故事:
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)。不知怎的,它应该会更好。

+0

啊对不起,我typoed我的帖子,我使用memcache.so扩展名,所以当我使用save_handler = memcached时,会引发同样的错误。 – Jeff 2010-10-30 07:54:43

+1

谢谢你,我不得不运行“pecl install memcache”命令来构建扩展并启用支持。在我的生产盒上工作,但不幸的是不是为MAMP,我想我必须找出一种方法来重新编译我有的版本的扩展。 – Jeff 2010-10-31 23:57:14

0

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

+0

我跟着指示这里http://www.lullabot.com/articles/setup-memcached-mamp-sandbox-environment,使用OSX 1.6.4和我把.so文件在正确的目录 – Jeff 2010-10-30 07:56:22

4

如果你想使用memcached代替memcache,请确保你没有tcp://session.save_path。所以,你应该解决您的session.save_path

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

session.save_path = "127.0.0.1:11211" 
+0

没有只是告诉多少时间您的帖子救了我。谢谢你,谢谢你,谢谢你。 – 2017-01-30 22:24:17

4

你可能只是还需要安装PHP的memcached扩展,例如yum install php55-pecl-memcached