Назад | Перейти на главную страницу

Как заставить расширение php-memcached работать с SASL на RHEL6

У меня RHEL6.1 с php. Я установил libmemcached-1.0.2 из src.rpm и скомпилировал php-memcached 2.0.0b2. Если я пытаюсь установить SaslAuthData ('user', 'pass') и писать что-нибудь в memcached (сервер Couchbase), я всегда получаю код возврата 5 (WRITE FAILURE). Комментирование setSaslAuthData приводит к работе с ведром по умолчанию. Но мне нужно заставить его работать с SASL. Есть идеи, что не так с моей настройкой?

P.S. конечно бинарный протокол включен

При настройке корзины вы можете указать пароль. Затем используйте SASL для подключения к серверу Couchbase, используя имя корзины в качестве имени пользователя и пароль, который вы указали ранее.

Расширенная, 11.12.2011

Я читал источник расширения memcached. В общем, кажется, что это не так уж много вещей, которые можно сделать неправильно на стороне PHP.

Дополнительный вопрос:

  • Можете ли вы убедиться, что в PHP нет других ошибок? error_log? Например. «Не удалось инициализировать библиотеку SASL». или что-то вроде того?
  • Вы установили memcached.use_sasl = 1 в твоем php.ini?
  • Проверяли ли вы журнал Couchbase Server на наличие ошибок при попытке установить ключ?

Я не эксперт по Couchbase Server, хотя знаю, что такое CouchDB. Если вам нужно его отладить, я бы попытался выяснить, как поднять уровень журнала до чего-то вроде DEBUG а затем посмотрите, сможете ли вы собрать какую-нибудь полезную информацию.

Я думаю, если это не одна из первых двух вещей, то эта ошибка не на стороне PHP, а, возможно, в версии Couchbase Server. Похоже, что ошибка записи - это то, что выдает libmemcached, поэтому это означает, что она поступает напрямую с сервера Couchbase.

Вы уверены, что memcached скомпилирован с использованием sasl?

$ memcached -S

Вы должны увидеть этот вывод, если memcached не был скомпилирован с SASL: «Этот сервер не построен с поддержкой SASL».