如何让php-memcached扩展与RHEL6上的SASL一起使用

我有用PHP的RHEL6.1。 我从src.rpm安装了libmemcached-1.0.2并编译了php-memcached 2.0.0b2。 如果我尝试setSaslAuthData('user','pass')并将某些内容写入memcached(Couchbase服务器),则始终会返回代码5(WRITE FAILURE)。 注释setSaslAuthData转而使用默认存储区。 但是我需要使用SASL。 有关我的设置有什么问题的任何想法?

PS当然二进制协议是打开的

你确定memcached是用sasl编译的吗?

$ memcached -S

如果memcached没有用SASL编译,你应该看到这个输出:“这个服务器不是用SASL支持构build的。”

当你设置一个桶时,你可以提供一个密码。 然后使用SASL连接到Couchbase服务器,方法是使用存储桶的名称作为用户名和前面提供的密码。

扩展,2011-12-11

我一直在阅读memcached扩展的来源 。 一般来说,似乎他们没有太多的东西,你可以在PHP端做错。

其他问题:

  • 你能确保没有其他的错误暴露在PHP的error_log ? 例如“无法初始化SASL库”。 或类似的东西?
  • 你在你的php.ini设置了memcached.use_sasl = 1吗?
  • 当您尝试设置密钥时,您是否检查了Couchbase Server的日志错误?

我不是Couchbase服务器上的专家,虽然我知道我的CouchDB的方式。 如果你必须debugging它,我会试图弄清楚如何调整日志级别,如DEBUG ,然后看看你是否可以收集任何有用的信息。

我认为,除非是前两种情况之一,否则这个错误不在PHP端,而可能在Couchbase Server版本中。 看起来写入错误是libmemcached公开的,所以这意味着它直接来自Couchbase服务器。