【发布时间】:2015-08-01 01:43:45
【问题描述】:
我正在尝试使用 memcached 存储 PHP 会话信息,但 PHP 一直告诉我它无法连接:
警告:session_start(): open(memcached:11211/sess_hitr4obt9ofmmsvk9kfl8euqt6, O_RDWR) 失败:没有这样的文件或目录 (2)
接下来,我尝试从运行它的服务器远程登录到 memcached:memcached -l 127.0.0.1 -p 12345 -vv
之后,我使用:telnet localhost 12345 进行连接
但是,这只会导致 telnet 挂起
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
同时,服务器输出位于:<28 new auto-negotiating client connection
我已经让它运行了很长一段时间,到目前为止还没有发生任何事情(没有超时,没有连接)。
我错过了什么吗?
【问题讨论】:
-
第一个错误表明 PHP 认为它应该使用名为“memcached:11211”的目录来存储会话文件。您是否正确安装了correct memcached extension 和modified your INI settings?
-
这是我的 php.ini 文件中的相应行。 session.save_handler = memcached session.save_path = "memcached:11211" 其中 memcached 在 /etc/hosts 中定义,指向我安装了 memcached 的服务器的 IP 地址。另外,web 服务器和 memcache 服务器都使用 memcached,而不是 memcache,所以我认为这不是问题。
-
好的,显然我使用的 CMS 正在将会话处理程序重新设置为文件,所以这就是导致 PHP 错误的原因。我仍然不明白的是为什么 telnet 不起作用。