尝试使用在NGINX / HHVM上运行的Symfony设置Memcached

时间:2014-10-02 02:53:50

标签: php symfony nginx memcached hhvm

我已经安装了memcached并按照以下方式进行了测试:

nc -U /var/run/memcached/memcached.sock
stats
STAT pid 16360
STAT uptime 2246
STAT time 1412217254
STAT version 1.4.14 (Ubuntu)
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.032563
//and so on...

我遇到的问题是当symfony加载并调用session_start()时会抛出错误:

  

致命错误:无法初始化存储模块:   用户(路径:/var/run/memcached/memcached.sock)位于第147行的/var/www/project/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php

我尝试使用相同的错误配置session.save_path吨不同的方法只是路径不同:

session.save_path = "/var/run/memcached/memcached.sock"
session.save_path = "unix:/var/run/memcached/memcached.sock"
session.save_path = "unix:///var/run/memcached/memcached.sock"
session.save_path = /var/run/memcached/memcached.sock
session.save_path = unix:/var/run/memcached/memcached.sock
session.save_path = unix:///var/run/memcached/memcached.sock

有没有人知道为什么我无法开始会话?

版本信息:

Ubuntu: 14.04.1
NGINX: 1.4.6
HHVM-nightly: 3.4.0-dev+2014.10.01
memcached: 1.4.14
symfony: 2.5.5

更新 我一直在挖掘并尝试不同的配置。如果我使用配置了以下会话参数的apache / php5.5.17运行symfony,它可以工作:

session.handler_name: memcached
session.save_path = "127..0.0.1:11211"

我也尝试使用nginx / hhvm这个配置,但我仍然得到同样的错误。

1 个答案:

答案 0 :(得分:4)

这是因为HHVM没有内置的memcache [d]会话处理程序。它只附带Redis和文件。

您可以使用其中一个后端,也可以使用SessionHandlerInterfacesession_set_save_handler

实现自己的后端