Сессии в memcached с Zend Framework

Столкнулся тут с очень странным багом. У нас в проекте реализовано централизованное хранение сессий. Т.е. разные бекэнды хранят сессии в одном месте. Это позволяет автоматически “узнавать” пользователя, вне зависимости от того с какого фронт-энда пришел запрос.
При выключенном кэше сессии хранятся в БД MySQL, при включенном в Memcached. И вот тут то и начались глюки. У нас есть основной движок на ZF, и утилитка на PHP. Утилитке надо производить авторизацию пользователя, а для этого подключаться к memcache и устанавливать session_save_handler().

Вроде делал всё как надо, но получал ошибку:

После этого сессия убивалась, и в основной системе юзера выкидывало.

Solution

А оказалось всё банально просто. Во-первых надо было устанавливать в утилите такие же переменные окружения для memcache, как и в дивжке:

С помошью кода:

Во-вторых, надо было отключить автоматическую сериализацию.

После этого сессия стала открываться как в основной системе, так и в утилите.

7 Comments

  1. У каждого своё мнение и вижу что вы в этом понимаете. Интересно а свой сайт вы купили или сами создали? Очень хорошо всё описано спс.
    P.S. Может разместите мою ссылку у себя на блоге может и получится заработать на нём.

  2. Было бы интересно узнать поподробнее может у вас есть ещё что не выложили тут буду ждать обновлений.

    1. Подписывайтесь на RSS и будете в курсе всех обновлений 🙂

  3. Очень интересная идея,нужно подумать и мне об этом

Leave a Comment